Portions created by the Initial Developer are Copyright (C) 2008-2023 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes files require_once dirname(__DIR__, 2) . "/resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('contact_phone_view')) { //access granted } else { echo "access denied"; exit; } //get the contact list $sql = "select * from v_contact_phones "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and contact_uuid = :contact_uuid "; $sql .= "order by phone_primary desc, phone_label asc "; $parameters['domain_uuid'] = $domain_uuid; $parameters['contact_uuid'] = $contact_uuid ?? ''; $database = new database; $contact_phones = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); //show if exists if (!empty($contact_phones)) { //detect speed dial prefix from dialplan $sql = "select dialplan_detail_data from v_dialplan_details "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and dialplan_uuid = ( "; $sql .= " select dialplan_uuid from v_dialplan_details "; $sql .= " where domain_uuid = :domain_uuid "; $sql .= " and dialplan_detail_data like 'app.lua speed_dial%' "; $sql .= " and (dialplan_detail_enabled = true or dialplan_detail_enabled is null) "; $sql .= " limit 1 "; $sql .= ") "; $sql .= "and dialplan_detail_tag = 'condition' "; $sql .= "and dialplan_detail_type = 'destination_number' "; $sql .= "and dialplan_detail_data like '^\\\\%' "; $sql .= "and (dialplan_detail_enabled = true or dialplan_detail_enabled is null) "; $sql .= "limit 1"; $parameters['domain_uuid'] = $domain_uuid; $database = new database; $speed_dial_condition = $database->select($sql, $parameters, 'column'); if (!empty($speed_dial_condition)) { $speed_dial_prefix = str_replace('(.*)', '', trim($speed_dial_condition,'^\$')); // default: ^\*0(.*)$ } unset($sql, $speed_dial_condition); //javascript function: send_cmd echo "\n"; //show the content echo "
\n"; $x = 0; foreach ($contact_phones as $row) { echo "
".(!empty($row['phone_label']) && $row['phone_label'] == strtolower($row['phone_label']) ? ucwords($row['phone_label']) : $row['phone_label'])."
\n"; // ($row['phone_primary'] ? " " : null)."\n"; echo "
"; echo button::create(['type'=>'button','class'=>'link','label'=>escape(format_phone($row['phone_number'] ?? '')),'title'=>$text['label-click_to_call'],'onclick'=>"send_cmd('".PROJECT_PATH."/app/click_to_call/click_to_call.php?src_cid_name=".urlencode($row['phone_number'] ?? '')."&src_cid_number=".urlencode($row['phone_number'] ?? '')."&dest_cid_name=".urlencode($_SESSION['user']['extension'][0]['outbound_caller_id_name'] ?? '')."&dest_cid_number=".urlencode($_SESSION['user']['extension'][0]['outbound_caller_id_number'] ?? '')."&src=".urlencode($_SESSION['user']['extension'][0]['user'] ?? '')."&dest=".urlencode($row['phone_number'] ?? '')."&rec=false&ringback=us-ring&auto_answer=true');"]); echo "
\n"; echo "
"; if ($row['phone_type_voice']) { $phone_types[] = ""; } if ($row['phone_type_fax']) { $phone_types[] = ""; } if ($row['phone_type_video']) { $phone_types[] = ""; } if ($row['phone_type_text']) { $phone_types[] = ""; } if (!empty($phone_types)) { echo " ".implode(" ", $phone_types); } unset($phone_types); if (!empty($row['phone_speed_dial'])) { echo "".$speed_dial_prefix."".$row['phone_speed_dial'].""; } echo "
\n"; $x++; } echo "
\n"; unset($contact_phones); } ?>