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 # 100405-1333 - Changed to show logs of non-found leads # 100618-0148 - Added Middle name modify and fixes statuses list # 100622-0945 - Added field labels # 100703-1122 - Added custom fields display/edit # 100712-1416 - Added entry_list_id field to vicidial_list to preserve link to custom fields if any # 100924-1431 - Added Called Count display # 101127-1610 - Added ability to set a scheduled callback date and time # 110212-2041 - Added compatibility with definable scheduled callback statuses # 110215-1411 - Added display of call notes to log records # 110215-1717 - Changed empty lead_id behavior to be add-a-lead functionality # 110525-1827 - Added ivr log records display # 111103-1533 - Added admin_hide_phone_data and admin_hide_lead_data options # 120223-2249 - Removed logging of good login passwords if webroot writable is enabled # 120518-1004 - Fix for multi-line comments # 120529-1635 - Added User Group Campaign-Lists validation # 121116-1411 - Added QC functionality # 121130-1033 - Changed scheduled callback user ID field to be 20 characters, issue #467 # 121222-2145 - Added email log # 130123-1940 - Added options.php option to allow display of non-selectable statuses # 130610-1049 - Finalized changing of all ereg instances to preg # 130621-1731 - Added filtering of input to prevent SQL injection attacks and new user auth # 130705-1726 - Minor change for encrypted password compatibility # 130901-0816 - Changed to mysqli PHP functions # 130926-2053 - Added option for viewing/modifying vicidial_list_archive leads # 140125-1100 - Fixed issue with Callback records having no campaign_id # 140304-2034 - Fixed issue with special characters in standard data fields # 140706-0827 - Incorporated QC includes into code # 140817-0937 - Added Archive Log search option # 141001-2200 - Finalized adding QXZ translation to all admin files # 141128-0859 - Code cleanup for QXZ functions # 141229-1745 - Added code for on-the-fly language translations display # 150107-1729 - Added ignore_group_on_search user option # 150114-2321 - Added date_of_birth as editable field # 150312-1506 - Fixed minor Iframe form bug related to custom fields # 150514-1522 - Added $gmt_offset lookup for adding a new lead # 150603-1527 - Allow non-digit characters in alt_phone field # 150808-1437 - Added compatibility for custom fields data options # 150908-1531 - Fixed input lengths for several standard fields to match DB # 150917-1301 - Added dynamic default field maxlengths based on DB schema # 150923-0700 - Fixed security issues with user access, issue #894 # 160102-1238 - Fixed issues with special characters, added $htmlconvert option # 160112-2344 - Added link to direct to recording logging page, access log display # 160122-1337 - Added display of gmt-offset, last-local-call and called-since-last-reset # 160407-2023 - Design changes, added more variable scrubbing, added more admin logging # 160926-1052 - Fix for inbound call notes display # 170224-1639 - Added ability to display archived recordings # 170409-1554 - Added IP List validation code # 170527-2253 - Fix for rare inbound logging issue #1017 # 170710-2039 - Added Audit Comments display # 170807-2255 - Added park log # 170826-0858 - Added link to turn on/off arcchived logs display # require("dbconnect_mysqli.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["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["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["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["CBchangeDATE"])) {$CBchangeDATE=$_GET["CBchangeDATE"];} elseif (isset($_POST["CBchangeDATE"])) {$CBchangeDATE=$_POST["CBchangeDATE"];} 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"];} if (isset($_POST["appointment_date"])) {$appointment_date=$_POST["appointment_date"];} elseif (isset($_GET["appointment_date"])) {$appointment_date=$_GET["appointment_date"];} if (isset($_POST["appointment_time"])) {$appointment_time=$_POST["appointment_time"];} elseif (isset($_GET["appointment_time"])) {$appointment_time=$_GET["appointment_time"];} if (isset($_GET["CBstatus"])) {$CBstatus=$_GET["CBstatus"];} elseif (isset($_POST["CBstatus"])) {$CBstatus=$_POST["CBstatus"];} if (isset($_GET["archive_search"])) {$archive_search=$_GET["archive_search"];} elseif (isset($_POST["archive_search"])) {$archive_search=$_POST["archive_search"];} if (isset($_GET["archive_log"])) {$archive_log=$_GET["archive_log"];} elseif (isset($_POST["archive_log"])) {$archive_log=$_POST["archive_log"];} 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 ($archive_search=="Yes") {$vl_table="vicidial_list_archive";} else {$vl_table="vicidial_list"; $archive_search="No";} $STARTtime = date("U"); $TODAY = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); $htmlconvert=1; $nonselectable_statuses=0; if (file_exists('options.php')) { require('options.php'); } $selectableSQL = "where selectable='Y'"; $selectableSQLand = "and selectable='Y'"; if ($nonselectable_statuses > 0) {$selectableSQL=''; $selectableSQLand='';} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,custom_fields_enabled,webroot_writable,allow_emails,enable_languages,language_method,active_modules,log_recording_access FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { $row=mysqli_fetch_row($rslt); $non_latin = $row[0]; $custom_fields_enabled = $row[1]; $webroot_writable = $row[2]; $allow_emails = $row[3]; $SSenable_languages = $row[4]; $SSlanguage_method = $row[5]; $active_modules = $row[6]; $log_recording_access = $row[7]; } ##### END SETTINGS LOOKUP ##### ########################################### $lead_id = preg_replace('/[^0-9a-zA-Z]/','',$lead_id); if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/','',$PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/','',$PHP_AUTH_PW); $DB=preg_replace('/[^0-9]/','',$DB); $user=preg_replace('/[^-_0-9a-zA-Z]/','',$user); $pass=preg_replace('/[^-_0-9a-zA-Z]/','',$pass); $function = preg_replace('/[^-\_0-9a-zA-Z]/', '',$function); $format = preg_replace('/[^0-9a-zA-Z]/','',$format); $list_id = preg_replace('/[^0-9]/','',$list_id); $entry_list_id = preg_replace('/[^0-9]/','',$entry_list_id); $phone_code = preg_replace('/[^0-9]/','',$phone_code); $update_phone_number=preg_replace('/[^A-Z]/','',$update_phone_number); $phone_number = preg_replace('/[^0-9]/','',$phone_number); $old_phone = preg_replace('/[^0-9]/','',$old_phone); $vendor_lead_code = preg_replace('/;|#/','',$vendor_lead_code); $vendor_lead_code = preg_replace('/\+/',' ',$vendor_lead_code); $source_id = preg_replace('/;|#/','',$source_id); $source_id = preg_replace('/\+/',' ',$source_id); $gmt_offset_now = preg_replace('/[^-\_\.0-9]/','',$gmt_offset_now); $title = preg_replace('/[^- \'\_\.0-9a-zA-Z]/','',$title); $first_name = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$first_name); $first_name = preg_replace('/\+/',' ',$first_name); $middle_initial = preg_replace('/[^0-9a-zA-Z]/','',$middle_initial); $last_name = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$last_name); $last_name = preg_replace('/\+/',' ',$last_name); $address1 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address1); $address2 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address2); $address3 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address3); $address1 = preg_replace('/\+/',' ',$address1); $address2 = preg_replace('/\+/',' ',$address2); $address3 = preg_replace('/\+/',' ',$address3); $city = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$city); $city = preg_replace('/\+/',' ',$city); $state = preg_replace('/[^- 0-9a-zA-Z]/','',$state); $province = preg_replace('/[^- \'\+\.\_0-9a-zA-Z]/','',$province); $province = preg_replace('/\+/',' ',$province); $postal_code = preg_replace('/[^- \'\+0-9a-zA-Z]/','',$postal_code); $postal_code = preg_replace('/\+/',' ',$postal_code); $country_code = preg_replace('/[^A-Z]/','',$country_code); $gender = preg_replace('/[^A-Z]/','',$gender); $date_of_birth = preg_replace('/[^-0-9]/','',$date_of_birth); $alt_phone = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$alt_phone); $alt_phone = preg_replace('/\+/',' ',$alt_phone); $email = preg_replace('/[^- \'\+\.\:\/\@\%\_0-9a-zA-Z]/','',$email); $email = preg_replace('/\+/',' ',$email); $security_phrase = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$security_phrase); $security_phrase = preg_replace('/\+/',' ',$security_phrase); $comments = preg_replace('/;|#/','',$comments); $comments = preg_replace('/\+/',' ',$comments); $campaign_id = preg_replace('/[^-\_0-9a-zA-Z]/', '',$campaign_id); $multi_alt_phones = preg_replace('/[^- \+\!\:\_0-9a-zA-Z]/','',$multi_alt_phones); $multi_alt_phones = preg_replace('/\+/',' ',$multi_alt_phones); $source = preg_replace('/[^0-9a-zA-Z]/','',$source); $stage = preg_replace('/[^a-zA-Z]/','',$stage); $rank = preg_replace('/[^0-9]/','',$rank); $owner = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$owner); $owner = preg_replace('/\+/',' ',$owner); $custom_fields = preg_replace('/[^0-9a-zA-Z]/','',$custom_fields); $no_update = preg_replace('/[^A-Z]/','',$no_update); $called_count=preg_replace('/[^0-9]/','',$called_count); $local_gmt=preg_replace('/[^-\.0-9]/','',$local_gmt); $callback = preg_replace('/[^A-Z]/','',$callback); $callback_status = preg_replace('/[^-\_0-9a-zA-Z]/', '',$callback_status); $callback_datetime = preg_replace('/[^- \+\.\:\/\@\_0-9a-zA-Z]/','',$callback_datetime); $callback_type = preg_replace('/[^A-Z]/','',$callback_type); $callback_user = preg_replace('/[^-\_0-9a-zA-Z]/', '',$callback_user); $callback_comments = preg_replace('/[^- \+\.\:\/\@\_0-9a-zA-Z]/','',$callback_comments); } # end of non_latin else { $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); } if (strlen($phone_number)<6) {$phone_number=$old_phone;} $auth=0; $auth_message = user_authorization($PHP_AUTH_USER,$PHP_AUTH_PW,'',1,0); if ($auth_message == 'GOOD') {$auth=1;} if ($auth < 1) { $VDdisplayMESSAGE = _QXZ("Login incorrect, please try again"); if ($auth_message == 'LOCK') { $VDdisplayMESSAGE = _QXZ("Too many login attempts, try again in 15 minutes"); Header ("Content-type: text/html; charset=utf-8"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; exit; } if ($auth_message == 'IPBLOCK') { $VDdisplayMESSAGE = _QXZ("Your IP Address is not allowed") . ": $ip"; Header ("Content-type: text/html; charset=utf-8"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; exit; } Header("WWW-Authenticate: Basic realm=\"CONTACT-CENTER-ADMIN\""); Header("HTTP/1.0 401 Unauthorized"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$PHP_AUTH_PW|$auth_message|\n"; exit; } if ($non_latin > 0) {$rslt=mysql_to_mysqli("SET NAMES 'UTF8'", $link);} $rights_stmt = "SELECT modify_leads,selected_language from vicidial_users where user='$PHP_AUTH_USER';"; if ($DB) {echo "|$stmt|\n";} $rights_rslt=mysql_to_mysqli($rights_stmt, $link); $rights_row=mysqli_fetch_row($rights_rslt); $modify_leads = $rights_row[0]; $VUselected_language = $rights_row[1]; # check their permissions if ($modify_leads < 1) { header ("Content-type: text/html; charset=utf-8"); echo _QXZ("You do not have permissions to modify leads")."\n"; exit; } $stmt="SELECT full_name,modify_leads,admin_hide_lead_data,admin_hide_phone_data,user_group,user_level,ignore_group_on_search from vicidial_users where user='$PHP_AUTH_USER';"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $LOGfullname = $row[0]; $LOGmodify_leads = $row[1]; $LOGadmin_hide_lead_data = $row[2]; $LOGadmin_hide_phone_data = $row[3]; $LOGuser_group = $row[4]; $LOGuser_level = $row[5]; $LOGignore_group_on_search = $row[6]; $LOGallowed_listsSQL=''; $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; if ($DB) {$HTML_text.="|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; if ( (!preg_match('/\-ALL/i', $LOGallowed_campaigns)) and ($LOGignore_group_on_search != '1') ) { $rawLOGallowed_campaignsSQL = preg_replace("/ -/",'',$LOGallowed_campaigns); $rawLOGallowed_campaignsSQL = preg_replace("/ /","','",$rawLOGallowed_campaignsSQL); $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; $stmt="SELECT list_id from vicidial_lists $whereLOGallowed_campaignsSQL;"; $rslt=mysql_to_mysqli($stmt, $link); $lists_to_print = mysqli_num_rows($rslt); $o=0; while ($lists_to_print > $o) { $rowx=mysqli_fetch_row($rslt); $camp_lists .= "'$rowx[0]',"; $o++; } $camp_lists = preg_replace('/.$/i','',$camp_lists);; if (strlen($camp_lists)<2) {$camp_lists="''";} $LOGallowed_listsSQL = "and list_id IN($camp_lists)"; $whereLOGallowed_listsSQL = "where list_id IN($camp_lists)"; } $label_title = _QXZ("Title"); $label_first_name = _QXZ("First"); $label_middle_initial = _QXZ("MI"); $label_last_name = _QXZ("Last"); $label_address1 = _QXZ("Address1"); $label_address2 = _QXZ("Address2"); $label_address3 = _QXZ("Address3"); $label_city = _QXZ("City"); $label_state = _QXZ("State"); $label_province = _QXZ("Province"); $label_postal_code = _QXZ("Postal Code"); $label_vendor_lead_code = _QXZ("Vendor ID"); $label_gender = _QXZ("Gender"); $label_phone_number = _QXZ("Phone"); $label_phone_code = _QXZ("DialCode"); $label_alt_phone = _QXZ("Alt. Phone"); $label_security_phrase = _QXZ("Show"); $label_email = _QXZ("Email"); $label_comments = _QXZ("Comments"); ### find any custom field labels $stmt="SELECT label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments from system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); if (strlen($row[0])>0) {$label_title = $row[0];} if (strlen($row[1])>0) {$label_first_name = $row[1];} if (strlen($row[2])>0) {$label_middle_initial = $row[2];} if (strlen($row[3])>0) {$label_last_name = $row[3];} if (strlen($row[4])>0) {$label_address1 = $row[4];} if (strlen($row[5])>0) {$label_address2 = $row[5];} if (strlen($row[6])>0) {$label_address3 = $row[6];} if (strlen($row[7])>0) {$label_city = $row[7];} if (strlen($row[8])>0) {$label_state = $row[8];} if (strlen($row[9])>0) {$label_province = $row[9];} if (strlen($row[10])>0) {$label_postal_code = $row[10];} if (strlen($row[11])>0) {$label_vendor_lead_code = $row[11];} if (strlen($row[12])>0) {$label_gender = $row[12];} if (strlen($row[13])>0) {$label_phone_number = $row[13];} if (strlen($row[14])>0) {$label_phone_code = $row[14];} if (strlen($row[15])>0) {$label_alt_phone = $row[15];} if (strlen($row[16])>0) {$label_security_phrase = $row[16];} if (strlen($row[17])>0) {$label_email = $row[17];} if (strlen($row[18])>0) {$label_comments = $row[18];} ##### BEGIN vicidial_list FIELD LENGTH LOOKUP ##### $MAXvendor_lead_code = '20'; $MAXphone_code = '10'; $MAXphone_number = '18'; $MAXtitle = '4'; $MAXfirst_name = '30'; $MAXmiddle_initial = '1'; $MAXlast_name = '30'; $MAXaddress1 = '100'; $MAXaddress2 = '100'; $MAXaddress3 = '100'; $MAXcity = '50'; $MAXstate = '2'; $MAXprovince = '50'; $MAXpostal_code = '10'; $MAXalt_phone = '12'; $MAXemail = '70'; $MAXsecurity_phrase = '100'; $MAXcountry_code = '3'; $MAXowner = '20'; $stmt = "SHOW COLUMNS FROM vicidial_list;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $scvl_ct = mysqli_num_rows($rslt); $s=0; while ($scvl_ct > $s) { $row=mysqli_fetch_row($rslt); $vl_field = $row[0]; $vl_type = preg_replace("/[^0-9]/",'',$row[1]); if (strlen($vl_type) > 0) { if ( ($vl_field == 'vendor_lead_code') and ($MAXvendor_lead_code != $vl_type) ) {$MAXvendor_lead_code = $vl_type;} if ( ($vl_field == 'phone_code') and ($MAXphone_code != $vl_type) ) {$MAXphone_code = $vl_type;} if ( ($vl_field == 'phone_number') and ($MAXphone_number != $vl_type) ) {$MAXphone_number = $vl_type;} if ( ($vl_field == 'title') and ($MAXtitle != $vl_type) ) {$MAXtitle = $vl_type;} if ( ($vl_field == 'first_name') and ($MAXfirst_name != $vl_type) ) {$MAXfirst_name = $vl_type;} if ( ($vl_field == 'middle_initial') and ($MAXmiddle_initial != $vl_type) ) {$MAXmiddle_initial = $vl_type;} if ( ($vl_field == 'last_name') and ($MAXlast_name != $vl_type) ) {$MAXlast_name = $vl_type;} if ( ($vl_field == 'address1') and ($MAXaddress1 != $vl_type) ) {$MAXaddress1 = $vl_type;} if ( ($vl_field == 'address2') and ($MAXaddress2 != $vl_type) ) {$MAXaddress2 = $vl_type;} if ( ($vl_field == 'address3') and ($MAXaddress3 != $vl_type) ) {$MAXaddress3 = $vl_type;} if ( ($vl_field == 'city') and ($MAXcity != $vl_type) ) {$MAXcity = $vl_type;} if ( ($vl_field == 'state') and ($MAXstate != $vl_type) ) {$MAXstate = $vl_type;} if ( ($vl_field == 'province') and ($MAXprovince != $vl_type) ) {$MAXprovince = $vl_type;} if ( ($vl_field == 'postal_code') and ($MAXpostal_code != $vl_type) ) {$MAXpostal_code = $vl_type;} if ( ($vl_field == 'alt_phone') and ($MAXalt_phone != $vl_type) ) {$MAXalt_phone = $vl_type;} if ( ($vl_field == 'email') and ($MAXemail != $vl_type) ) {$MAXemail = $vl_type;} if ( ($vl_field == 'security_phrase') and ($MAXsecurity_phrase != $vl_type) ) {$MAXsecurity_phrase = $vl_type;} if ( ($vl_field == 'country_code') and ($MAXcountry_code != $vl_type) ) {$MAXcountry_code = $vl_type;} if ( ($vl_field == 'owner') and ($MAXowner != $vl_type) ) {$MAXowner = $vl_type;} } $s++; } ##### END vicidial_list FIELD LENGTH LOOKUP ##### ### find out if status(dispo) is a scheduled callback status $scheduled_callback=''; $stmt="SELECT scheduled_callback from vicidial_statuses where status='$dispo';"; $rslt=mysql_to_mysqli($stmt, $link); $scb_count_to_print = mysqli_num_rows($rslt); if ($scb_count_to_print > 0) { $row=mysqli_fetch_row($rslt); if (strlen($row[0])>0) {$scheduled_callback = $row[0];} } $stmt="SELECT scheduled_callback from vicidial_campaign_statuses where status='$dispo';"; $rslt=mysql_to_mysqli($stmt, $link); $scb_count_to_print = mysqli_num_rows($rslt); if ($scb_count_to_print > 0) { $row=mysqli_fetch_row($rslt); if (strlen($row[0])>0) {$scheduled_callback = $row[0];} } $vdc_form_display = 'vdc_form_display.php'; if (preg_match("/cf_encrypt/",$active_modules)) {$vdc_form_display = 'vdc_form_display_encrypt.php';} header ("Content-type: text/html; charset=utf-8"); echo "\n"; echo "\n"; echo "\n"; echo ""._QXZ("Modify Lead")."\n"; ?> \n"; echo "\n"; echo "\n"; echo ""; $short_header=1; require("admin_header.php"); echo "\n"; echo "\n"; ### BEGIN - Add a new lead in the system ### if ($lead_id == 'NEW') { $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"); ### Grab Server GMT value from the database $stmt="SELECT local_gmt FROM servers where active='Y' limit 1;"; $rslt=mysql_to_mysqli($stmt, $link); $gmt_recs = mysqli_num_rows($rslt); if ($gmt_recs > 0) { $row=mysqli_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 = preg_replace("/\+/i","",$SERVER_GMT); $SERVER_GMT = ($SERVER_GMT + 0); $SERVER_GMT = ($SERVER_GMT / 100); } $LOCAL_GMT_OFF = $SERVER_GMT; $LOCAL_GMT_OFF_STD = $SERVER_GMT; $USarea = substr($phone_number, 0, 3); $USprefix = substr($phone_number, 3, 1); $postalgmt=''; $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code,$owner,$USprefix); $comments = preg_replace("/\n/",'!N',$comments); $comments = preg_replace("/\r/",'',$comments); $list_valid=0; $stmt="SELECT count(*) from vicidial_lists where list_id='" . mysqli_real_escape_string($link, $list_id) . "' $LOGallowed_campaignsSQL;"; $rslt=mysql_to_mysqli($stmt, $link); $list_to_print = mysqli_num_rows($rslt); if ($list_to_print > 0) { $rowx=mysqli_fetch_row($rslt); $list_valid = $rowx[0]; } if ( ($list_valid > 0) or (preg_match('/\-ALL/i', $LOGallowed_campaigns)) ) { $stmt="INSERT INTO vicidial_list set status='" . mysqli_real_escape_string($link, $status) . "',title='" . mysqli_real_escape_string($link, $title) . "',first_name='" . mysqli_real_escape_string($link, $first_name) . "',middle_initial='" . mysqli_real_escape_string($link, $middle_initial) . "',last_name='" . mysqli_real_escape_string($link, $last_name) . "',address1='" . mysqli_real_escape_string($link, $address1) . "',address2='" . mysqli_real_escape_string($link, $address2) . "',address3='" . mysqli_real_escape_string($link, $address3) . "',city='" . mysqli_real_escape_string($link, $city) . "',state='" . mysqli_real_escape_string($link, $state) . "',province='" . mysqli_real_escape_string($link, $province) . "',postal_code='" . mysqli_real_escape_string($link, $postal_code) . "',country_code='" . mysqli_real_escape_string($link, $country_code) . "',alt_phone='" . mysqli_real_escape_string($link, $alt_phone) . "',phone_number='$phone_number',phone_code='$phone_code',email='" . mysqli_real_escape_string($link, $email) . "',security_phrase='" . mysqli_real_escape_string($link, $security) . "',comments='" . mysqli_real_escape_string($link, $comments) . "',rank='" . mysqli_real_escape_string($link, $rank) . "',owner='" . mysqli_real_escape_string($link, $owner) . "',vendor_lead_code='" . mysqli_real_escape_string($link, $vendor_id) . "', list_id='" . mysqli_real_escape_string($link, $list_id) . "',date_of_birth='" . mysqli_real_escape_string($link, $date_of_birth) . "',gmt_offset_now='$gmt_offset',entry_date=NOW();"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $affected_rows = mysqli_affected_rows($link); if ($affected_rows > 0) { $lead_id = mysqli_insert_id($link); echo _QXZ("Lead has been added").": $lead_id ($gmt_offset)

\n"; $end_call=0; } else {echo _QXZ("ERROR: Lead not added, please go back and look at what you entered")."

\n";} } else { echo _QXZ("you do not have permission to add this lead")." $list_id       $NOW_TIME\n

\n"; } ### END - Add a new lead in the system ### } else { $stmt="SELECT count(*) from $vl_table where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "'"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysqli_fetch_row($rslt); $lead_exists = $row[0]; $stmt="SELECT count(*) from $vl_table where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' $LOGallowed_listsSQL"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysqli_fetch_row($rslt); $lead_count = $row[0]; if ( ($lead_exists > 0) and ($lead_count < 1) ) { echo _QXZ("lead does not exist")."\n"; exit; } } if (strlen($lead_id) < 1) {$lead_id = 'NEW';} if ($end_call > 0) { $comments = preg_replace("/\n/",'!N',$comments); $comments = preg_replace("/\r/",'',$comments); $list_valid=0; $stmt="SELECT count(*) from vicidial_lists where list_id='" . mysqli_real_escape_string($link, $list_id) . "' $LOGallowed_campaignsSQL;"; $rslt=mysql_to_mysqli($stmt, $link); $list_to_print = mysqli_num_rows($rslt); if ($list_to_print > 0) { $rowx=mysqli_fetch_row($rslt); $list_valid = $rowx[0]; } if ( ($list_valid > 0) or (preg_match('/\-ALL/i', $LOGallowed_campaigns)) ) { ### update the lead record in the vicidial_list table $stmtA="UPDATE $vl_table set status='" . mysqli_real_escape_string($link, $status) . "',title='" . mysqli_real_escape_string($link, $title) . "',first_name='" . mysqli_real_escape_string($link, $first_name) . "',middle_initial='" . mysqli_real_escape_string($link, $middle_initial) . "',last_name='" . mysqli_real_escape_string($link, $last_name) . "',address1='" . mysqli_real_escape_string($link, $address1) . "',address2='" . mysqli_real_escape_string($link, $address2) . "',address3='" . mysqli_real_escape_string($link, $address3) . "',city='" . mysqli_real_escape_string($link, $city) . "',state='" . mysqli_real_escape_string($link, $state) . "',province='" . mysqli_real_escape_string($link, $province) . "',postal_code='" . mysqli_real_escape_string($link, $postal_code) . "',country_code='" . mysqli_real_escape_string($link, $country_code) . "',alt_phone='" . mysqli_real_escape_string($link, $alt_phone) . "',phone_number='$phone_number',phone_code='$phone_code',email='" . mysqli_real_escape_string($link, $email) . "',security_phrase='" . mysqli_real_escape_string($link, $security) . "',comments='" . mysqli_real_escape_string($link, $comments) . "',rank='" . mysqli_real_escape_string($link, $rank) . "',owner='" . mysqli_real_escape_string($link, $owner) . "',vendor_lead_code='" . mysqli_real_escape_string($link, $vendor_id) . "',date_of_birth='" . mysqli_real_escape_string($link, $date_of_birth) . "' where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "'"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmtA, $link); echo _QXZ("information modified")."

\n"; echo ""._QXZ("Go back to the lead modification page")."

\n"; echo "
\n"; if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) { ### inactivate vicidial_callbacks record for this lead $stmtB="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and status='ACTIVE';"; if ($DB) {echo "|$stmtB|\n";} $rslt=mysql_to_mysqli($stmtB, $link); echo "
"._QXZ("vicidial_callback record inactivated").": $lead_id
\n"; } if ( ($dispo != $status) and ( ($dispo == 'CALLBK') or ($scheduled_callback == 'Y') ) ) { ### inactivate vicidial_callbacks record for this lead $stmtC="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and status IN('ACTIVE','LIVE');"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_to_mysqli($stmtC, $link); echo "
"._QXZ("vicidial_callback record inactivated").": $lead_id
\n"; } if ( ($dispo != $status) and ($status == 'CBHOLD') ) { ### find any vicidial_callback records for this lead $stmtD="SELECT callback_id from vicidial_callbacks where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_to_mysqli($stmtD, $link); $CBM_to_print = mysqli_num_rows($rslt); if ($CBM_to_print > 0) { $rowx=mysqli_fetch_row($rslt); $callback_id = $rowx[0]; } else { $tomorrow = date("Y-m-d", mktime(date("H"),date("i"),date("s"),date("m"),date("d")+1,date("Y"))); $CLEAN_campaign_id = mysqli_real_escape_string($link, $campaign_id); $CLEAN_campaign_id = preg_replace("/'|\"|\\\\|;/","",$CLEAN_campaign_id); $CLEAN_campaign_id = preg_replace('/[^-_0-9a-zA-Z]/','',$CLEAN_campaign_id); if (strlen($CLEAN_campaign_id)<1) { $stmt="SELECT campaign_id from vicidial_lists where list_id='" . mysqli_real_escape_string($link, $list_id) . "';"; $rslt=mysql_to_mysqli($stmt, $link); $cidvl_count_to_print = mysqli_num_rows($rslt); if ($cidvl_count_to_print > 0) { $row=mysqli_fetch_row($rslt); if (strlen($row[0])>0) {$CLEAN_campaign_id = $row[0];} } } $stmtE="INSERT INTO vicidial_callbacks SET lead_id='" . mysqli_real_escape_string($link, $lead_id) . "',recipient='ANYONE',status='ACTIVE',user='$PHP_AUTH_USER',user_group='ADMIN',list_id='" . mysqli_real_escape_string($link, $list_id) . "',callback_time='$tomorrow 12:00:00',entry_time='$NOW_TIME',comments='',campaign_id='$CLEAN_campaign_id';"; if ($DB) {echo "|$stmtE|\n";} $rslt=mysql_to_mysqli($stmtE, $link); echo "
"._QXZ("Scheduled Callback added").": $lead_id - $phone_number
\n"; } } if ( ($dispo != $status) and ($status == 'DNC') ) { ### add lead to the internal DNC list $stmtF="INSERT INTO vicidial_dnc (phone_number) values('" . mysqli_real_escape_string($link, $phone_number) . "');"; if ($DB) {echo "|$stmtF|\n";} $rslt=mysql_to_mysqli($stmtF, $link); echo "
"._QXZ("Lead added to DNC List").": $lead_id - $phone_number
\n"; } ### update last record in vicidial_log table if (($dispo != $status) and ($modify_logs > 0)) { $stmtG="UPDATE vicidial_log set status='" . mysqli_real_escape_string($link, $status) . "' where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmtG|\n";} $rslt=mysql_to_mysqli($stmtG, $link); } ### update last record in vicidial_closer_log table if (($dispo != $status) and ($modify_closer_logs > 0)) { $stmtH="UPDATE vicidial_closer_log set status='" . mysqli_real_escape_string($link, $status) . "' where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by closecallid desc limit 1"; if ($DB) {echo "|$stmtH|\n";} $rslt=mysql_to_mysqli($stmtH, $link); } ### update last record in vicidial_agent_log table if (($dispo != $status) and ($modify_agent_logs > 0)) { $stmtI="UPDATE vicidial_agent_log set status='" . mysqli_real_escape_string($link, $status) . "' where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by agent_log_id desc limit 1"; if ($DB) {echo "|$stmtI|\n";} $rslt=mysql_to_mysqli($stmtI, $link); } if ($add_closer_record > 0) { $comments = preg_replace("/\n/",'!N',$comments); $comments = preg_replace("/\r/",'',$comments); ### insert a NEW record to the vicidial_closer_log table $stmtJ="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('" . mysqli_real_escape_string($link, $lead_id) . "','" . mysqli_real_escape_string($link, $list_id) . "','" . mysqli_real_escape_string($link, $campaign_id) . "','" . mysqli_real_escape_string($link, $parked_time) . "','$NOW_TIME','$STARTtime','1','" . mysqli_real_escape_string($link, $status) . "','" . mysqli_real_escape_string($link, $phone_code) . "','" . mysqli_real_escape_string($link, $phone_number) . "','$PHP_AUTH_USER','" . mysqli_real_escape_string($link, $comments) . "','Y')"; if ($DB) {echo "|$stmtJ|\n";} $rslt=mysql_to_mysqli($stmtJ, $link); } ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmtA|$stmtB|$stmtC|$stmtE|$stmtF|$stmtG|$stmtH|$stmtI|$stmtJ|"; $SQL_log = preg_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_to_mysqli($stmt, $link); } else { echo _QXZ("you do not have permission to modify this lead")." $lead_id       $list_id       $NOW_TIME\n

\n"; } } else { if ($CBchangeUSERtoANY == 'YES') { ### set vicidial_callbacks record to an ANYONE callback for this lead $stmtK="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='" . mysqli_real_escape_string($link, $callback_id) . "';"; if ($DB) {echo "|$stmtK|\n";} $rslt=mysql_to_mysqli($stmtK, $link); echo "
"._QXZ("vicidial_callback record changed to ANYONE")."
\n"; } if ($CBchangeUSERtoUSER == 'YES') { ### set vicidial_callbacks record to a different USERONLY callback record for this lead $stmtL="UPDATE vicidial_callbacks set user='" . mysqli_real_escape_string($link, $CBuser) . "' where callback_id='" . mysqli_real_escape_string($link, $callback_id) . "';"; if ($DB) {echo "|$stmtL|\n";} $rslt=mysql_to_mysqli($stmtL, $link); echo "
"._QXZ("vicidial_callback record user changed to")." $CBuser
\n"; } if ($CBchangeANYtoUSER == 'YES') { ### set vicidial_callbacks record to an USERONLY callback for this lead $stmtM="UPDATE vicidial_callbacks set user='" . mysqli_real_escape_string($link, $CBuser) . "',recipient='USERONLY' where callback_id='" . mysqli_real_escape_string($link, $callback_id) . "';"; if ($DB) {echo "|$stmtM|\n";} $rslt=mysql_to_mysqli($stmtM, $link); echo "
"._QXZ("vicidial_callback record changed to USERONLY, user").": $CBuser
\n"; } if ($CBchangeDATE == 'YES') { $comments = preg_replace("/\n/",' ',$comments); $comments = preg_replace("/\r/",'',$comments); ### change date/time of vicidial_callbacks record for this lead $stmtN="UPDATE vicidial_callbacks set callback_time='" . mysqli_real_escape_string($link, $appointment_date) . " " . mysqli_real_escape_string($link, $appointment_time) . "',comments='" . mysqli_real_escape_string($link, $comments) . "',lead_status='" . mysqli_real_escape_string($link, $CBstatus) . "' where callback_id='" . mysqli_real_escape_string($link, $callback_id) . "';"; if ($DB) {echo "|$stmtN|\n";} $rslt=mysql_to_mysqli($stmtN, $link); echo "
"._QXZ("vicidial_callback record changed to")." $appointment_date $appointment_time $CBstatus
\n"; } if ( (strlen($stmtK)>10) or (strlen($stmtL)>10) or (strlen($stmtM)>10) or (strlen($stmtN)>10) ) { ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmtK|$stmtL|$stmtM|$stmtN|"; $SQL_log = preg_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 CALLBACK', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); } $stmt="SELECT count(*) from $vl_table where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' $LOGallowed_listsSQL"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysqli_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='" . mysqli_real_escape_string($link, $lead_id) . "' order by alt_phone_count limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $alts_to_print = mysqli_num_rows($rslt); $c=0; $alts_output = ''; while ($alts_to_print > $c) { $row=mysqli_fetch_row($rslt); if (preg_match("/1$|3$|5$|7$|9$/i", $c)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $c++; $alts_output .= ""; $alts_output .= "$c"; $alts_output .= "$row[0] $row[1]"; $alts_output .= " $row[2]\n"; $alts_output .= " $row[3]\n"; $alts_output .= " $row[4] \n"; } } else { if ($lead_id != 'NEW') { echo _QXZ("lead lookup FAILED for lead_id")." $lead_id       $NOW_TIME\n

\n"; if (!preg_match('/\-ALL/i', $LOGallowed_campaigns)) {exit;} } # echo "Close this window\n

\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='" . mysqli_real_escape_string($link, $lead_id) . "' order by uniqueid desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $logs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$logs_to_print|$stmt\n";} $u=0; $call_log = ''; $log_campaign = ''; while ($logs_to_print > $u) { $row=mysqli_fetch_row($rslt); if (strlen($log_campaign)<1) {$log_campaign = $row[3];} if (preg_match("/1$|3$|5$|7$|9$/i", $u)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $u++; $call_log .= ""; $call_log .= "$u"; $call_log .= "$row[4]"; $call_log .= " $row[7]\n"; $call_log .= " $row[8]\n"; $call_log .= " $row[11] \n"; $call_log .= " $row[3] \n"; $call_log .= " $row[2] \n"; $call_log .= " $row[1] \n"; $call_log .= " $row[15] \n"; $call_log .= "  $row[10] \n"; $stmtA="SELECT call_notes FROM vicidial_call_notes WHERE lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and vicidial_id='$row[0]';"; $rsltA=mysql_to_mysqli($stmtA, $link); $out_notes_to_print = mysqli_num_rows($rslt); if ($out_notes_to_print > 0) { $rowA=mysqli_fetch_row($rsltA); if (strlen($rowA[0]) > 0) { $call_log .= ""; $call_log .= ""; $call_log .= " "._QXZ("NOTES").":   $rowA[0] "; $call_log .= ""; } } $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='" . mysqli_real_escape_string($link, $lead_id) . "' order by agent_log_id desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $Alogs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$Alogs_to_print|$stmt\n";} $y=0; $agent_log = ''; $Alog_campaign = ''; while ($Alogs_to_print > $y) { $row=mysqli_fetch_row($rslt); if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} if (preg_match("/1$|3$|5$|7$|9$/i", $y)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $y++; $agent_log .= ""; $agent_log .= "$y"; $agent_log .= "$row[3]"; $agent_log .= " $row[5]\n"; $agent_log .= " $row[1] \n"; $agent_log .= " $row[7]\n"; $agent_log .= " $row[9] \n"; $agent_log .= " $row[11] \n"; $agent_log .= " $row[13] \n"; $agent_log .= "   $row[14] \n"; $agent_log .= "   $row[15] \n"; $agent_log .= "   $row[17] \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='" . mysqli_real_escape_string($link, $lead_id) . "' order by closecallid desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $Clogs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$Clogs_to_print|$stmt\n";} $y=0; $closer_log = ''; $Clog_campaign = ''; while ($Clogs_to_print > $y) { $row=mysqli_fetch_row($rslt); if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} if (preg_match("/1$|3$|5$|7$|9$/i", $y)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $y++; $closer_log .= ""; $closer_log .= "$y"; $closer_log .= "$row[4]"; $closer_log .= " $row[7]\n"; $closer_log .= " $row[8]\n"; $closer_log .= " $row[11] \n"; $closer_log .= " $row[3] \n"; $closer_log .= " $row[2] \n"; $closer_log .= " $row[1] \n"; $closer_log .= "   $row[14] \n"; $closer_log .= "   $row[17] \n"; $stmtA="SELECT call_notes FROM vicidial_call_notes WHERE lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and vicidial_id IN('$row[0]','$row[18]');"; $rsltA=mysql_to_mysqli($stmtA, $link); $in_notes_to_print = mysqli_num_rows($rslt); if ($in_notes_to_print > 0) { $rowA=mysqli_fetch_row($rsltA); if (strlen($rowA[0]) > 0) { $closer_log .= ""; $closer_log .= ""; $closer_log .= " "._QXZ("NOTES").":   $rowA[0] "; $closer_log .= ""; } } $campaign_id = $row[3]; } ########## BEGIN ARCHIVE LOG SEARCH ########## if ($archive_log == 'Yes') { ##### grab vicidial_log_archive 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_archive where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by uniqueid desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $logs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$logs_to_print|$stmt\n";} $u=0; # $call_log = ''; # $log_campaign = ''; while ($logs_to_print > $u) { $row=mysqli_fetch_row($rslt); if (strlen($log_campaign)<1) {$log_campaign = $row[3];} if (preg_match("/1$|3$|5$|7$|9$/i", $u)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $u++; $call_log .= ""; $call_log .= "$u"; $call_log .= "$row[4]"; $call_log .= " $row[7]\n"; $call_log .= " $row[8]\n"; $call_log .= " $row[11] \n"; $call_log .= " $row[3] \n"; $call_log .= " $row[2] \n"; $call_log .= " $row[1] \n"; $call_log .= " $row[15] \n"; $call_log .= "  $row[10] \n"; $stmtA="SELECT call_notes FROM vicidial_call_notes WHERE lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and vicidial_id='$row[0]';"; $rsltA=mysql_to_mysqli($stmtA, $link); $out_notes_to_print = mysqli_num_rows($rslt); if ($out_notes_to_print > 0) { $rowA=mysqli_fetch_row($rsltA); if (strlen($rowA[0]) > 0) { $call_log .= ""; $call_log .= ""; $call_log .= " "._QXZ("NOTES").":   $rowA[0] "; $call_log .= ""; } } $campaign_id = $row[3]; } ##### grab vicidial_agent_log_archive 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_archive where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by agent_log_id desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $Alogs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$Alogs_to_print|$stmt\n";} $y=0; # $agent_log = ''; # $Alog_campaign = ''; while ($Alogs_to_print > $y) { $row=mysqli_fetch_row($rslt); if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} if (preg_match("/1$|3$|5$|7$|9$/i", $y)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $y++; $agent_log .= ""; $agent_log .= "$y"; $agent_log .= "$row[3]"; $agent_log .= " $row[5]\n"; $agent_log .= " $row[1] \n"; $agent_log .= " $row[7]\n"; $agent_log .= " $row[9] \n"; $agent_log .= " $row[11] \n"; $agent_log .= " $row[13] \n"; $agent_log .= "   $row[14] \n"; $agent_log .= "   $row[15] \n"; $agent_log .= "   $row[17] \n"; $campaign_id = $row[5]; } ##### grab vicidial_closer_log_archive 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_archive where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by closecallid desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $Clogs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$Clogs_to_print|$stmt\n";} $y=0; # $closer_log = ''; # $Clog_campaign = ''; while ($Clogs_to_print > $y) { $row=mysqli_fetch_row($rslt); if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} if (preg_match("/1$|3$|5$|7$|9$/i", $y)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $y++; $closer_log .= ""; $closer_log .= "$y"; $closer_log .= "$row[4]"; $closer_log .= " $row[7]\n"; $closer_log .= " $row[8]\n"; $closer_log .= " $row[11] \n"; $closer_log .= " $row[3] \n"; $closer_log .= " $row[2] \n"; $closer_log .= " $row[1] \n"; $closer_log .= "   $row[14] \n"; $closer_log .= "   $row[17] \n"; $stmtA="SELECT call_notes FROM vicidial_call_notes WHERE lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and vicidial_id IN('$row[0]','$row[18]');"; $rsltA=mysql_to_mysqli($stmtA, $link); $in_notes_to_print = mysqli_num_rows($rslt); if ($in_notes_to_print > 0) { $rowA=mysqli_fetch_row($rsltA); if (strlen($rowA[0]) > 0) { $closer_log .= ""; $closer_log .= ""; $closer_log .= " "._QXZ("NOTES").":   $rowA[0] "; $closer_log .= ""; } } $campaign_id = $row[3]; } } ########## END ARCHIVE LOG SEARCH ########## ##### 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,entry_list_id from $vl_table where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' $LOGallowed_listsSQL"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysqli_fetch_row($rslt); if ($LOGadmin_hide_phone_data != '0') { if ($DB > 0) {echo "HIDEPHONEDATA|$row[11]|$LOGadmin_hide_phone_data|\n";} $phone_temp = $row[11]; if (strlen($phone_temp) > 0) { if ($LOGadmin_hide_phone_data == '4_DIGITS') {$row[11] = str_repeat("X", (strlen($phone_temp) - 4)) . substr($phone_temp,-4,4);} elseif ($LOGadmin_hide_phone_data == '3_DIGITS') {$row[11] = str_repeat("X", (strlen($phone_temp) - 3)) . substr($phone_temp,-3,3);} elseif ($LOGadmin_hide_phone_data == '2_DIGITS') {$row[11] = str_repeat("X", (strlen($phone_temp) - 2)) . substr($phone_temp,-2,2);} else {$row[11] = preg_replace("/./",'X',$phone_temp);} } } if ($LOGadmin_hide_lead_data != '0') { if ($DB > 0) {echo "HIDELEADDATA|$row[5]|$row[6]|$row[12]|$row[13]|$row[14]|$row[15]|$row[16]|$row[17]|$row[18]|$row[19]|$row[20]|$row[21]|$row[22]|$row[26]|$row[27]|$row[28]|$LOGadmin_hide_lead_data|\n";} if (strlen($row[5]) > 0) {$data_temp = $row[5]; $row[5] = preg_replace("/./",'X',$data_temp);} if (strlen($row[6]) > 0) {$data_temp = $row[6]; $row[6] = preg_replace("/./",'X',$data_temp);} if (strlen($row[12]) > 0) {$data_temp = $row[12]; $row[12] = preg_replace("/./",'X',$data_temp);} if (strlen($row[13]) > 0) {$data_temp = $row[13]; $row[13] = preg_replace("/./",'X',$data_temp);} if (strlen($row[14]) > 0) {$data_temp = $row[14]; $row[14] = preg_replace("/./",'X',$data_temp);} if (strlen($row[15]) > 0) {$data_temp = $row[15]; $row[15] = preg_replace("/./",'X',$data_temp);} if (strlen($row[16]) > 0) {$data_temp = $row[16]; $row[16] = preg_replace("/./",'X',$data_temp);} if (strlen($row[17]) > 0) {$data_temp = $row[17]; $row[17] = preg_replace("/./",'X',$data_temp);} if (strlen($row[18]) > 0) {$data_temp = $row[18]; $row[18] = preg_replace("/./",'X',$data_temp);} if (strlen($row[19]) > 0) {$data_temp = $row[19]; $row[19] = preg_replace("/./",'X',$data_temp);} if (strlen($row[20]) > 0) {$data_temp = $row[20]; $row[20] = preg_replace("/./",'X',$data_temp);} if (strlen($row[21]) > 0) {$data_temp = $row[21]; $row[21] = preg_replace("/./",'X',$data_temp);} if (strlen($row[22]) > 0) {$data_temp = $row[22]; $row[22] = preg_replace("/./",'X',$data_temp);} if (strlen($row[26]) > 0) {$data_temp = $row[26]; $row[26] = preg_replace("/./",'X',$data_temp);} if (strlen($row[27]) > 0) {$data_temp = $row[27]; $row[27] = preg_replace("/./",'X',$data_temp);} if (strlen($row[28]) > 0) {$data_temp = $row[28]; $row[28] = preg_replace("/./",'X',$data_temp);} } if (strlen($row[0]) > 0) {$lead_id = $row[0];} $dispo = $row[3]; $tsr = $row[4]; $vendor_id = $row[5]; $list_id = $row[7]; $gmt_offset_now = $row[8]; $called_since_last_reset = $row[9]; $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]; $entry_list_id = $row[34]; $comments = preg_replace("/!N/","\n",$comments); if ($lead_id == 'NEW') { ##### create a select list of lists if a NEW lead_id ##### $stmt="SELECT list_id,campaign_id,list_name from vicidial_lists $whereLOGallowed_campaignsSQL order by list_id limit 5000;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $lists_to_print = mysqli_num_rows($rslt); $Lc=0; $select_list = '"; $list_id=$select_list; } if ($lead_id == 'NEW') {echo "
"._QXZ("Add A New Lead")."\n";} else {echo "
"._QXZ("Lead 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"; if ($archive_search=="Yes") { echo "\n"; } if ($archive_log=="Yes") { echo "\n"; } else { echo "\n"; } if ($lead_id == 'NEW') {$list_id='';} if ($LOGadmin_hide_lead_data != '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"; 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"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if ($lead_id != 'NEW') { $stmt="SELECT user_id, timestamp, list_id, campaign_id, comment from vicidial_comments where lead_id='$lead_id' order by timestamp;"; $rslt=mysql_to_mysqli($stmt, $link); $row_count = mysqli_num_rows($rslt); $audit_comments=false; $o=0; while ($row_count > $o) { if (!$audit_comments) { echo "\n"; $audit_comments=true; } $rowx=mysqli_fetch_row($rslt); $Auser[$o] = $rowx[0]; $Atimestamp[$o] = $rowx[1]; $Acomment[$o] = $rowx[4]; $o++; } $o=0; while ($row_count > $o) { $Afull_name=''; $stmt="SELECT full_name from vicidial_users where user='$Auser[$o]';"; $rslt=mysql_to_mysqli($stmt, $link); $FNrow_count = mysqli_num_rows($rslt); if ($FNrow_count > 0) { $rowx=mysqli_fetch_row($rslt); $Afull_name = $rowx[0]; } echo "\n"; $o++; } if ($audit_comments) { echo "\n"; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } else { echo "\n"; } if ( ($LOGadmin_hide_lead_data == '0') or ($lead_id == 'NEW') ) { echo "\n"; } echo "
"._QXZ("Lead ID").": $lead_id     "._QXZ("List ID").": $list_id     "._QXZ("GMT offset").": $gmt_offset_now     "._QXZ("CSLR").": $called_since_last_reset
"._QXZ("Fronter").": $tsr     "._QXZ("Called Count").": $called_count     "._QXZ("Last Local Call").": $last_local_call_time
"; echo "*** "._QXZ("ARCHIVED LEAD")." ***"; echo ""; echo "
"; echo "*** "._QXZ("ARCHIVED LOG SEARCH ENABLED")." *** "._QXZ("Turn off archived logs display")."
"; echo "*** "._QXZ("ARCHIVED LOGS SHOWN IN RED, THERE MAY BE DUPLICATES WITH NON-ARCHIVED LOG ENTRIES")." ***"; echo ""; echo "
"; echo ""._QXZ("Turn on archived logs display").""; echo "
$label_title: $title   \n"; echo "$label_first_name: $first_name
$label_middle_initial: $middle_initial   \n"; echo " $label_last_name: $last_name
$label_address1 : $address1
$label_address2 : $address2
$label_address3 : $address3
$label_city : $city
$label_state: $state   \n"; echo " $label_postal_code: $postal_code
$label_province : $province
"._QXZ("Country")." : $country_code   \n"; echo " "._QXZ("Date of Birth").": $date_of_birth
$label_phone_number : $phone_number
$label_phone_code : $phone_code
$label_alt_phone : $alt_phone
$label_email : $email
$label_security_phrase : $security
$label_vendor_lead_code : $vendor_id>
"._QXZ("Rank")." : $rank
"._QXZ("Owner")." : $owner
$label_comments : $comments
$label_title:   \n"; echo "$label_first_name:
$label_middle_initial:   \n"; echo " $label_last_name:
$label_address1 :
$label_address2 :
$label_address3 :
$label_city :
$label_state:   \n"; echo " $label_postal_code:
$label_province :
"._QXZ("Country")." :   \n"; echo " "._QXZ("Date of Birth").":
$label_phone_number :
$label_phone_code :
$label_alt_phone :
$label_email :
$label_security_phrase :
$label_vendor_lead_code :
"._QXZ("Rank")." :
"._QXZ("Owner")." :
$label_comments :
"._QXZ("Comment History")."
$Atimestamp[$o]:
  $Acomment[$o]
 
by user: $Auser[$o] - $Afull_name

"._QXZ("Disposition").": ("._QXZ("with")." $list_campaign "._QXZ("statuses").")
"._QXZ("Modify vicidial log")."
"._QXZ("Modify agent log")."
"._QXZ("Modify closer log")."
"._QXZ("Add closer log record")."
\n"; echo "


\n"; if ($lead_id != 'NEW') { echo "
\n"; echo _QXZ("Callback Details").":
\n"; if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') or ($scheduled_callback == 'Y') ) { ### 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,lead_status from vicidial_callbacks where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); $CB_to_print = mysqli_num_rows($rslt); $rowx=mysqli_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 _QXZ("New Callback Owner UserID").": \n"; echo "

\n"; } else { echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo _QXZ("New Callback Owner UserID").": \n"; echo "

\n"; } $callback_id = $rowx[0]; $CBcomments = $rowx[10]; $lead_status = $rowx[12]; $appointment_datetimeARRAY = explode(" ",$rowx[6]); $appointment_date = $appointment_datetimeARRAY[0]; $appointment_timeARRAY = explode(":",$appointment_datetimeARRAY[1]); $appointment_hour = $appointment_timeARRAY[0]; $appointment_min = $appointment_timeARRAY[1]; $stmt="SELECT status,status_name from vicidial_statuses where scheduled_callback='Y' $selectableSQLand and status NOT IN('CBHOLD') order by status"; $rslt=mysql_to_mysqli($stmt, $link); $statuses_to_print = mysqli_num_rows($rslt); $statuses_list=''; $o=0; $DS=0; while ($statuses_to_print > $o) { $rowx=mysqli_fetch_row($rslt); if ( (strlen($lead_status) == strlen($rowx[0])) and (preg_match("/$lead_status/i",$rowx[0])) ) {$statuses_list .= "\n"; $DS++;} else {$statuses_list .= "\n";} $o++; } $stmt="SELECT status,status_name from vicidial_campaign_statuses where scheduled_callback='Y' $selectableSQLand and status NOT IN('CBHOLD') and campaign_id='$list_campaign' order by status"; $rslt=mysql_to_mysqli($stmt, $link); $CAMPstatuses_to_print = mysqli_num_rows($rslt); $o=0; $CBhold_set=0; while ($CAMPstatuses_to_print > $o) { $rowx=mysqli_fetch_row($rslt); if ( (strlen($lead_status) == strlen($rowx[0])) and (preg_match("/$lead_status/i",$rowx[0])) ) {$statuses_list .= "\n"; $DS++;} else {$statuses_list .= "\n";} $o++; } if ($DS < 1) {$statuses_list .= "\n";} ?>

:
>
:     :
:
:
"._QXZ("No Callback records found")."
\n"; } } else { echo "
"._QXZ("If you want to change this lead to a scheduled callback, first change the Disposition to CBHOLD, then submit and you will be able to set the callback date and time").".
\n"; } echo "
\n"; echo "

\n"; if ($c > 0) { echo ""._QXZ("EXTENDED ALTERNATE PHONE NUMBERS FOR THIS LEAD").":\n"; echo "\n"; echo "\n"; echo "$alts_output\n"; echo "
# "._QXZ("ALT PHONE")." "._QXZ("ALT NOTE")." "._QXZ("ALT COUNT")." "._QXZ("ACTIVE")."
\n"; echo "

\n"; } ### iframe for custom fields display/editing if ($custom_fields_enabled > 0) { $CLlist_id = $list_id; if (strlen($entry_list_id) > 2) {$CLlist_id = $entry_list_id;} $stmt="SHOW TABLES LIKE \"custom_$CLlist_id\";"; if ($DB>0) {echo "$stmt";} $rslt=mysql_to_mysqli($stmt, $link); $tablecount_to_print = mysqli_num_rows($rslt); if ($tablecount_to_print > 0) { $stmt="SELECT count(*) from custom_$CLlist_id where lead_id='$lead_id';"; if ($DB>0) {echo "$stmt";} $rslt=mysql_to_mysqli($stmt, $link); $fieldscount_to_print = mysqli_num_rows($rslt); if ($fieldscount_to_print > 0) { $rowx=mysqli_fetch_row($rslt); $custom_records_count = $rowx[0]; echo ""._QXZ("CUSTOM FIELDS FOR THIS LEAD").":
\n"; echo "\n"; echo "

"; } } } echo ""._QXZ("CALLS TO THIS LEAD").":\n"; echo "\n"; echo "\n"; echo "$call_log\n"; echo "
# "._QXZ("DATE/TIME")." "._QXZ("LENGTH")." "._QXZ("STATUS")." "._QXZ("TSR")." "._QXZ("CAMPAIGN")." "._QXZ("LIST")." "._QXZ("LEAD")." "._QXZ("HANGUP REASON")." "._QXZ("PHONE")."
\n"; echo "

\n"; echo ""._QXZ("CLOSER RECORDS FOR THIS LEAD").":\n"; echo "\n"; echo "\n"; echo "$closer_log\n"; echo "
# "._QXZ("DATE/TIME")." "._QXZ("LENGTH")." "._QXZ("STATUS")." "._QXZ("TSR")." "._QXZ("CAMPAIGN")." "._QXZ("LIST")." "._QXZ("LEAD")." "._QXZ("WAIT")." "._QXZ("HANGUP REASON")."
\n"; echo "

\n"; echo ""._QXZ("AGENT LOG RECORDS FOR THIS LEAD").":\n"; echo "\n"; echo "\n"; echo "$agent_log\n"; echo "
# "._QXZ("DATE/TIME")." "._QXZ("CAMPAIGN")." "._QXZ("TSR")." "._QXZ("PAUSE")." "._QXZ("WAIT")." "._QXZ("TALK")." "._QXZ("DISPO")." "._QXZ("STATUS")." "._QXZ("GROUP")." "._QXZ("SUB")."
\n"; echo "

\n"; echo ""._QXZ("PARK LOGS FOR THIS LEAD").":\n"; echo "\n"; echo "\n"; $stmt="SELECT * from park_log where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by parked_time, grab_time, hangup_time desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $logs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$logs_to_print|$stmt|\n";} $u=0; while ($logs_to_print > $u) { $row=mysqli_fetch_array($rslt); if (preg_match("/1$|3$|5$|7$|9$/i", $u)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $u++; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
# "._QXZ("PARK TIME").""._QXZ("CHANNEL GROUP")." "._QXZ("TSR")."   "._QXZ("STATUS")." "._QXZ("GRAB TIME")." "._QXZ("HANGUP TIME")." "._QXZ("PARK SEC")." "._QXZ("TALK SEC")." "._QXZ("EXTENSION")."
$u $row[parked_time] $row[channel_group] $row[user] $row[status] $row[grab_time] $row[hangup_time] $row[parked_sec] $row[talked_sec] $row[extension]


\n"; echo ""._QXZ("IVR LOGS FOR THIS LEAD").":\n"; echo "\n"; echo "\n"; $stmt="SELECT campaign_id,event_date,menu_id,menu_action from vicidial_outbound_ivr_log where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by uniqueid,event_date,menu_action desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $logs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$logs_to_print|$stmt|\n";} $u=0; while ($logs_to_print > $u) { $row=mysqli_fetch_row($rslt); if (preg_match("/1$|3$|5$|7$|9$/i", $u)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $u++; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
# "._QXZ("CAMPAIGN").""._QXZ("DATE/TIME")." "._QXZ("CALL MENU")."   "._QXZ("ACTION")."
$u $row[0] $row[1] $row[2] $row[3]  


\n"; ##### vicidial agent outbound calls for this time period ##### if ($allow_emails>0) { echo ""._QXZ("OUTBOUND EMAILS FOR THIS LEAD").":\n"; echo "\n"; echo "\n"; $stmt="SELECT * from vicidial_email_log where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by email_date desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $logs_to_print = mysqli_num_rows($rslt); $u=0; while ($logs_to_print > $u) { $row=mysqli_fetch_row($rslt); if (preg_match("/1$|3$|5$|7$|9$/i", $u)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} if (strlen($row[6])>100) {$row[6]=substr($row[6],0,100)."...";} $row[8]=preg_replace('/\|/', ', ', $row[8]); $row[8]=preg_replace('/,\s+$/', '', $row[8]); $u++; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
# "._QXZ("DATE/TIME")." "._QXZ("USER")." "._QXZ("CAMPAIGN").""._QXZ("EMAIL TO")." "._QXZ("MESSAGE")." "._QXZ("ATTACHMENTS")."
$u$row[3] $row[4] $row[7] $row[5] $row[6] $row[8]


\n"; } echo ""._QXZ("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='" . mysqli_real_escape_string($link, $lead_id) . "' order by recording_id desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $logs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$logs_to_print|$stmt|\n";} $u=0; $rec_ids="''"; while ($logs_to_print > $u) { $row=mysqli_fetch_row($rslt); if (preg_match("/1$|3$|5$|7$|9$/i", $u)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $location = $row[11]; if (strlen($location)>2) { $URLserver_ip = $location; $URLserver_ip = preg_replace('/http:\/\//i', '',$URLserver_ip); $URLserver_ip = preg_replace('/https:\/\//i', '',$URLserver_ip); $URLserver_ip = preg_replace('/\/.*/i', '',$URLserver_ip); $stmt="SELECT count(*) from servers where server_ip='$URLserver_ip';"; $rsltx=mysql_to_mysqli($stmt, $link); $rowx=mysqli_fetch_row($rsltx); if ($rowx[0] > 0) { $stmt="SELECT recording_web_link,alt_server_ip,external_server_ip from servers where server_ip='$URLserver_ip';"; $rsltx=mysql_to_mysqli($stmt, $link); $rowx=mysqli_fetch_row($rsltx); if (preg_match("/ALT_IP/i",$rowx[0])) { $location = preg_replace("/$URLserver_ip/i", "$rowx[1]", $location); } if (preg_match("/EXTERNAL_IP/i",$rowx[0])) { $location = preg_replace("/$URLserver_ip/i", "$rowx[2]", $location); } } } if (strlen($location)>30) {$locat = substr($location,0,27); $locat = "$locat...";} else {$locat = $location;} if ( (preg_match('/ftp/i',$location)) or (preg_match('/http/i',$location)) ) if ($log_recording_access<1) {$location = "$locat";} else {$location = "$locat";} else {$location = $locat;} $u++; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo ""; echo "\n"; $rec_ids .= ",'$row[0]'"; } $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_archive where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and recording_id NOT IN($rec_ids) order by recording_id desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $logs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$logs_to_print|$stmt|\n";} $v=0; while ($logs_to_print > $v) { $row=mysqli_fetch_row($rslt); if (preg_match("/1$|3$|5$|7$|9$/i", $u)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $location = $row[11]; if (strlen($location)>2) { $URLserver_ip = $location; $URLserver_ip = preg_replace('/http:\/\//i', '',$URLserver_ip); $URLserver_ip = preg_replace('/https:\/\//i', '',$URLserver_ip); $URLserver_ip = preg_replace('/\/.*/i', '',$URLserver_ip); $stmt="SELECT count(*) from servers where server_ip='$URLserver_ip';"; $rsltx=mysql_to_mysqli($stmt, $link); $rowx=mysqli_fetch_row($rsltx); if ($rowx[0] > 0) { $stmt="SELECT recording_web_link,alt_server_ip,external_server_ip from servers where server_ip='$URLserver_ip';"; $rsltx=mysql_to_mysqli($stmt, $link); $rowx=mysqli_fetch_row($rsltx); if (preg_match("/ALT_IP/i",$rowx[0])) { $location = preg_replace("/$URLserver_ip/i", "$rowx[1]", $location); } if (preg_match("/EXTERNAL_IP/i",$rowx[0])) { $location = preg_replace("/$URLserver_ip/i", "$rowx[2]", $location); } } } if (strlen($location)>30) {$locat = substr($location,0,27); $locat = "$locat...";} else {$locat = $location;} if ( (preg_match('/ftp/i',$location)) or (preg_match('/http/i',$location)) ) if ($log_recording_access<1) {$location = "$locat";} else {$location = "$locat";} else {$location = $locat;} $u++; $v++; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo ""; echo "\n"; } echo "
# "._QXZ("LEAD").""._QXZ("DATE/TIME")." "._QXZ("SECONDS")."   "._QXZ("RECID").""._QXZ("FILENAME").""._QXZ("LOCATION").""._QXZ("TSR")."
$u $row[12] $row[4] $row[8] $row[0]   $row[10] $location $row[13]
$u $row[12] $row[4] $row[8] $row[0]   $row[10] $location * $row[13]


\n"; if ($log_recording_access > 0) { echo ""._QXZ("RECORDING ACCESS LOG FOR THIS LEAD").":\n"; echo "\n"; echo "\n"; $stmt="SELECT recording_id,lead_id,user,access_datetime,access_result,ip from vicidial_recording_access_log where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' order by recording_access_log_id desc limit 500;"; $rslt=mysql_to_mysqli($stmt, $link); $logs_to_print = mysqli_num_rows($rslt); if ($DB) {echo "$logs_to_print|$stmt|\n";} $u=0; while ($logs_to_print > $u) { $row=mysqli_fetch_row($rslt); if (preg_match("/1$|3$|5$|7$|9$/i", $u)) {$bgcolor='bgcolor="#B9CBFD"';} else {$bgcolor='bgcolor="#9BB9FB"';} $u++; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
# "._QXZ("LEAD").""._QXZ("DATE/TIME")." "._QXZ("RECORDING ID").""._QXZ("USER").""._QXZ("RESULT")." "._QXZ("IP")."
$u $row[1] $row[3] $row[0] $row[2] $row[4] $row[5]


\n"; } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and user_level >= 9 and modify_leads='1';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $admin_display=$row[0]; if ($admin_display > 0) { echo ""._QXZ("Click here to see Lead Modify changes to this lead")."\n"; } //Display link to QC if user has QC permissions //Get QC User permissions $stmt="SELECT qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit from vicidial_users where user='$PHP_AUTH_USER' and user_level > 1 and active='Y' and qc_enabled='1';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $qc_auth=$row[0]; //Not "qc_" as it will interfere with ADD=4A storage of modified user. if ($qc_auth=='1') { $qcuser_level=$row[1]; $qcpass=$row[2]; $qcfinish=$row[3]; $qccommit=$row[4]; } //Modify menuing to allow qc users into the system (if they have no permission otherwise) //Copied Reports-Only user setup for QC-Only user (Poundteam QC setup) $qc_only_user=0; if ( ($qc_auth > 0) and ($auth < 1) ) { if ($ADD != '881') { $ADD=100000000000000; } $qc_only_user=1; } if ($qcuser_level > 0) { echo "

"._QXZ("Click here to QC Modify this lead")."\n"; } echo "\n"; } } $ENDtime = date("U"); $RUNtime = ($ENDtime - $STARTtime); echo "\n\n\n


\n\n"; echo "\n\n\n


\n"._QXZ("script runtime").": $RUNtime "._QXZ("seconds")."
"; echo "
\n"; ?> 0) { return htmlentities($text); } else { return $text; } } ?>