Merge branch 'fusionpbx:master' into master

This commit is contained in:
Norman King 2025-01-22 09:28:18 -05:00 committed by GitHub
commit 61ff47c008
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
106 changed files with 5194 additions and 1321 deletions

View File

@ -38,6 +38,9 @@
$language = new text;
$text = $language->get();
//create the database connection
$database = database::new();
//action add or update
if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) {
$action = "update";
@ -93,20 +96,17 @@
switch ($_POST['action']) {
case 'copy':
if (permission_exists('access_control_add')) {
$obj = new database;
$obj->copy($array);
$database->copy($array);
}
break;
case 'delete':
if (permission_exists('access_control_delete')) {
$obj = new database;
$obj->delete($array);
$database->delete($array);
}
break;
case 'toggle':
if (permission_exists('access_control_update')) {
$obj = new database;
$obj->toggle($array);
$database->toggle($array);
}
break;
}
@ -229,7 +229,6 @@
//save the data
if (is_array($array)) {
$database = new database;
$database->app_name = 'access controls';
$database->app_uuid = '1416a250-f6e1-4edc-91a6-5c9b883638fd';
$database->save($array);
@ -266,7 +265,7 @@
$sql = "select * from v_access_controls ";
$sql .= "where access_control_uuid = :access_control_uuid ";
$parameters['access_control_uuid'] = $access_control_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (!empty($row) && count($row) > 0) {
$access_control_name = $row["access_control_name"];
@ -282,7 +281,6 @@
$sql .= "where access_control_uuid = :access_control_uuid ";
$sql .= "order by node_cidr asc";
$parameters['access_control_uuid'] = $access_control_uuid;
$database = new database;
$access_control_nodes = $database->select($sql, $parameters, 'all');
unset ($sql, $parameters);
}
@ -326,6 +324,9 @@
if (permission_exists('access_control_node_add')) {
echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$_SESSION['theme']['button_icon_import'],'style'=>'margin-right: 3px;','link'=>'access_control_import.php?id='.escape($access_control_uuid)]);
}
if (permission_exists('access_control_node_view')) {
echo button::create(['type'=>'button','label'=>$text['button-export'],'icon'=>$_SESSION['theme']['button_icon_export'],'style'=>'margin-right: 3px;','link'=>'access_control_export.php?id='.escape($access_control_uuid)]);
}
if (permission_exists('access_control_node_add')) {
echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'id'=>'btn_copy','name'=>'btn_copy','style'=>'display: none;','onclick'=>"modal_open('modal-copy','btn_copy');"]);
}

View File

@ -0,0 +1,185 @@
<?php
/*
FusionPBX
Version: MPL 1.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2024
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
//includes files
require_once dirname(__DIR__, 2) . "/resources/require.php";
require_once "resources/check_auth.php";
require_once "resources/paging.php";
//check permissions
if (permission_exists('access_control_node_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
//initialize the database object
$database = new database;
//add multi-lingual support
$language = new text;
$text = $language->get();
//define available columns
$available_columns[] = 'node_type';
$available_columns[] = 'node_cidr';
$available_columns[] = 'node_description';
$available_columns[] = 'insert_date';
$available_columns[] = 'insert_user';
$available_columns[] = 'update_date';
$available_columns[] = 'update_user';
//action add or update
if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) {
$access_control_uuid = $_REQUEST["id"];
}
//define the functions
function array2csv(array &$array) {
if (count($array) == 0) {
return null;
}
ob_start();
$df = fopen("php://output", 'w');
fputcsv($df, array_keys(reset($array)));
foreach ($array as $row) {
fputcsv($df, $row);
}
fclose($df);
return ob_get_clean();
}
//send download headers
function download_send_headers($filename) {
// disable caching
$now = gmdate("D, d M Y H:i:s");
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
header("Last-Modified: {$now} GMT");
// force download
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
// disposition / encoding on response body
header("Content-Disposition: attachment;filename={$filename}");
header("Content-Transfer-Encoding: binary");
}
//get the extensions from the database and send them as output
if (!empty($_REQUEST["column_group"]) && is_array($_REQUEST["column_group"]) && @sizeof($_REQUEST["column_group"]) != 0) {
//validate the token
$token = new token;
if (!$token->validate($_SERVER['PHP_SELF'])) {
message::add($text['message-invalid_token'],'negative');
header('Location: access_control_export.php');
exit;
}
//validate submitted columns
foreach ($_REQUEST["column_group"] as $column_name) {
if (in_array($column_name, $available_columns)) {
$selected_columns[] = $column_name;
}
}
if (!empty($access_control_uuid) && is_uuid($access_control_uuid) && is_array($selected_columns) && @sizeof($selected_columns) != 0) {
//get the child data
$sql = "select ".implode(', ', $selected_columns)." from v_access_control_nodes ";
$sql .= "where access_control_uuid = :access_control_uuid ";
$sql .= "order by node_cidr asc";
$parameters['access_control_uuid'] = $access_control_uuid;
$access_control_nodes = $database->select($sql, $parameters, 'all');
unset($sql, $parameters, $selected_columns);
//send the download headers
download_send_headers("access_control_export_".date("Y-m-d").".csv");
//output the data
echo array2csv($access_control_nodes);
exit;
}
}
//create token
$object = new token;
$token = $object->create($_SERVER['PHP_SELF']);
//include the header
$document['title'] = $text['title-access_control_export'];
require_once "resources/header.php";
//show the content
echo "<form method='post' name='frm' id='frm'>\n";
echo "<div class='action_bar' id='action_bar'>\n";
echo " <div class='heading'><b>".$text['header-access_control_export']."</b></div>\n";
echo " <div class='actions'>\n";
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','link'=>'access_control_edit.php?id='.$access_control_uuid]);
echo button::create(['type'=>'submit','label'=>$text['button-export'],'icon'=>$_SESSION['theme']['button_icon_export'],'id'=>'btn_save','style'=>'margin-left: 15px;']);
echo " </div>\n";
echo " <div style='clear: both;'></div>\n";
echo "</div>\n";
echo $text['description-access_control_export'];
echo "<br /><br />\n";
echo "<div class='card'>\n";
echo "<table class='list'>\n";
echo "<tr class='list-header'>\n";
echo " <th class='checkbox'>\n";
echo " <input type='checkbox' id='checkbox_all' name='checkbox_all' onclick='list_all_toggle();' ".(empty($available_columns) ? "style='visibility: hidden;'" : null).">\n";
echo " </th>\n";
echo " <th>".$text['label-column_name']."</th>\n";
echo "</tr>\n";
if (!empty($available_columns) && is_array($available_columns) && @sizeof($available_columns) != 0) {
$x = 0;
foreach ($available_columns as $column_name) {
$list_row_onclick = "if (!this.checked) { document.getElementById('checkbox_all').checked = false; }";
echo "<tr class='list-row'>\n";
echo " <td class='checkbox'>\n";
echo " <input type='checkbox' name='column_group[]' id='checkbox_".$x."' value=\"".$column_name."\" onclick=\"".$list_row_onclick."\">\n";
echo " </td>\n";
echo " <td onclick=\"document.getElementById('checkbox_".$x."').checked = document.getElementById('checkbox_".$x."').checked ? false : true; ".$list_row_onclick."\">".$column_name."</td>";
echo "</tr>";
$x++;
}
}
echo "</table>\n";
echo "</div>\n";
echo "<br />\n";
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
echo "</form>\n";
//include the footer
require_once "resources/footer.php";
?>

View File

@ -55,7 +55,6 @@
$y++;
$apps[$x]['permissions'][$y]['name'] = "access_control_node_delete";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$y++;
//cache details
$apps[$x]['cache']['key'] = "configuration.acl.conf";
@ -73,7 +72,7 @@
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "access_control_name";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['search'] = 'true';
$apps[$x]['db'][$y]['fields'][$z]['search'] = 'true';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the name.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "access_control_default";

View File

@ -108,32 +108,59 @@ $text['title-access_control']['zh-cn'] = "访问控制";
$text['title-access_control']['ja-jp'] = "アクセス制御";
$text['title-access_control']['ko-kr'] = "액세스 제어";
$text['title_description-access_controls']['en-us'] = "Access control list can allow or deny ranges of IP addresses.";
$text['title_description-access_controls']['en-gb'] = "Access control list can allow or deny ranges of IP addresses.";
$text['title_description-access_controls']['ar-eg'] = "قائمة التحكم بالوصول يمكن السماح أو الرفض نطاقات العناوين.";
$text['title_description-access_controls']['de-at'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
$text['title_description-access_controls']['de-ch'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
$text['title_description-access_controls']['de-de'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
$text['title_description-access_controls']['el-gr'] = "Access control list can allow or deny ranges of IP addresses";
$text['title_description-access_controls']['es-cl'] = "Lista de control de acceso puede permitir o denegar los rangos de direcciones IP.";
$text['title_description-access_controls']['es-mx'] = "Lista de control de acceso puede permitir o denegar los rangos de direcciones IP.";
$text['title_description-access_controls']['fr-ca'] = "Liste de contrôle d'accès peut autoriser ou refuser des plages d'adresses IP.";
$text['title_description-access_controls']['fr-fr'] = "Liste de contrôle d'accès peut autoriser ou refuser des plages d'adresses IP.";
$text['title_description-access_controls']['he-il'] = " רשימת בקרת גישה יכולה לאפשר או למנוע טווחים של כתובות IP.";
$text['title_description-access_controls']['it-it'] = "Le liste per il controllo di accesso permettono o negano l'accesso a range di IP.";
$text['title_description-access_controls']['ka-ge'] = "წვდომის კონტროლის სიას IP მისამართების შუალედების დაშვება ან აკრძალვა შეუძლია";
$text['title_description-access_controls']['nl-nl'] = "Toegang Controle lijst kan IP adres reeks toestaan of verbieden.";
$text['title_description-access_controls']['pl-pl'] = "Lista kontroli dostępu może umożliwić lub zablokować zakresy adresów IP.";
$text['title_description-access_controls']['pt-br'] = "Lista de controle de acesso pode permitir ou negar intervalos de endereços IP.";
$text['title_description-access_controls']['pt-pt'] = "Lista de controle de acesso pode permitir ou negar intervalos de endereços IP.";
$text['title_description-access_controls']['ro-ro'] = "Lista de control al accesului poate permite sau refuza intervale de adrese IP.";
$text['title_description-access_controls']['ru-ru'] = "Контроль доступа может разрешить или запретить диапазоны IP адресов.";
$text['title_description-access_controls']['sv-se'] = "Åtkomstkontrollista kan tillåta eller neka intervall av IP-adresser.";
$text['title_description-access_controls']['uk-ua'] = "Список контролю доступу може дозволити або заборонити діапазони IP-адрес.";
$text['title_description-access_controls']['tr-tr'] = "Erişim kontrol listesi IP adres aralıklarına izin verebilir veya reddedebilir.";
$text['title_description-access_controls']['zh-cn'] = "访问控制列表可以允许或拒绝 IP 地址范围。";
$text['title_description-access_controls']['ja-jp'] = "アクセス コントロール リストでは、IP アドレスの範囲を許可または拒否できます。";
$text['title_description-access_controls']['ko-kr'] = "액세스 제어 목록은 IP 주소 범위를 허용하거나 거부할 수 있습니다.";
$text['title-access_control_export']['en-us'] = "Access Control Export";
$text['title-access_control_export']['en-gb'] = "Access Control Export";
$text['title-access_control_export']['ar-eg'] = "";
$text['title-access_control_export']['de-at'] = "";
$text['title-access_control_export']['de-ch'] = "";
$text['title-access_control_export']['de-de'] = "";
$text['title-access_control_export']['ek-gr'] = "";
$text['title-access_control_export']['es-cl'] = "";
$text['title-access_control_export']['es-mx'] = "";
$text['title-access_control_export']['fr-ca'] = "";
$text['title-access_control_export']['fr-fr'] = "";
$text['title-access_control_export']['he-il'] = "";
$text['title-access_control_export']['it-it'] = "";
$text['title-access_control_export']['ka-ge'] = "";
$text['title-access_control_export']['nl-nl'] = "";
$text['title-access_control_export']['pl-pl'] = "";
$text['title-access_control_export']['pt-br'] = "";
$text['title-access_control_export']['pt-pt'] = "";
$text['title-access_control_export']['ro-ro'] = "";
$text['title-access_control_export']['ru-ru'] = "";
$text['title-access_control_export']['sv-se'] = "";
$text['title-access_control_export']['uk-ua'] = "";
$text['title-access_control_export']['tr-tr'] = "";
$text['title-access_control_export']['zh-cn'] = "";
$text['title-access_control_export']['ja-jp'] = "";
$text['title-access_control_export']['ko-kr'] = "";
$text['header-access_control_export']['en-us'] = "Access Control Export";
$text['header-access_control_export']['en-gb'] = "Access Control Export";
$text['header-access_control_export']['ar-eg'] = "";
$text['header-access_control_export']['de-at'] = "";
$text['header-access_control_export']['de-ch'] = "";
$text['header-access_control_export']['de-de'] = "";
$text['header-access_control_export']['ek-gr'] = "";
$text['header-access_control_export']['es-cl'] = "";
$text['header-access_control_export']['es-mx'] = "";
$text['header-access_control_export']['fr-ca'] = "";
$text['header-access_control_export']['fr-fr'] = "";
$text['header-access_control_export']['he-il'] = "";
$text['header-access_control_export']['it-it'] = "";
$text['header-access_control_export']['ka-ge'] = "";
$text['header-access_control_export']['nl-nl'] = "";
$text['header-access_control_export']['pl-pl'] = "";
$text['header-access_control_export']['pt-br'] = "";
$text['header-access_control_export']['pt-pt'] = "";
$text['header-access_control_export']['ro-ro'] = "";
$text['header-access_control_export']['ru-ru'] = "";
$text['header-access_control_export']['sv-se'] = "";
$text['header-access_control_export']['uk-ua'] = "";
$text['header-access_control_export']['tr-tr'] = "";
$text['header-access_control_export']['zh-cn'] = "";
$text['header-access_control_export']['ja-jp'] = "";
$text['header-access_control_export']['ko-kr'] = "";
$text['label-node_type']['en-us'] = "Type";
$text['label-node_type']['en-gb'] = "Type";
@ -405,6 +432,33 @@ $text['label-access_control_description']['zh-cn'] = "描述";
$text['label-access_control_description']['ja-jp'] = "説明";
$text['label-access_control_description']['ko-kr'] = "설명";
$text['title_description-access_controls']['en-us'] = "Access control list can allow or deny ranges of IP addresses.";
$text['title_description-access_controls']['en-gb'] = "Access control list can allow or deny ranges of IP addresses.";
$text['title_description-access_controls']['ar-eg'] = "قائمة التحكم بالوصول يمكن السماح أو الرفض نطاقات العناوين.";
$text['title_description-access_controls']['de-at'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
$text['title_description-access_controls']['de-ch'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
$text['title_description-access_controls']['de-de'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
$text['title_description-access_controls']['el-gr'] = "Access control list can allow or deny ranges of IP addresses";
$text['title_description-access_controls']['es-cl'] = "Lista de control de acceso puede permitir o denegar los rangos de direcciones IP.";
$text['title_description-access_controls']['es-mx'] = "Lista de control de acceso puede permitir o denegar los rangos de direcciones IP.";
$text['title_description-access_controls']['fr-ca'] = "Liste de contrôle d'accès peut autoriser ou refuser des plages d'adresses IP.";
$text['title_description-access_controls']['fr-fr'] = "Liste de contrôle d'accès peut autoriser ou refuser des plages d'adresses IP.";
$text['title_description-access_controls']['he-il'] = " רשימת בקרת גישה יכולה לאפשר או למנוע טווחים של כתובות IP.";
$text['title_description-access_controls']['it-it'] = "Le liste per il controllo di accesso permettono o negano l'accesso a range di IP.";
$text['title_description-access_controls']['ka-ge'] = "წვდომის კონტროლის სიას IP მისამართების შუალედების დაშვება ან აკრძალვა შეუძლია";
$text['title_description-access_controls']['nl-nl'] = "Toegang Controle lijst kan IP adres reeks toestaan of verbieden.";
$text['title_description-access_controls']['pl-pl'] = "Lista kontroli dostępu może umożliwić lub zablokować zakresy adresów IP.";
$text['title_description-access_controls']['pt-br'] = "Lista de controle de acesso pode permitir ou negar intervalos de endereços IP.";
$text['title_description-access_controls']['pt-pt'] = "Lista de controle de acesso pode permitir ou negar intervalos de endereços IP.";
$text['title_description-access_controls']['ro-ro'] = "Lista de control al accesului poate permite sau refuza intervale de adrese IP.";
$text['title_description-access_controls']['ru-ru'] = "Контроль доступа может разрешить или запретить диапазоны IP адресов.";
$text['title_description-access_controls']['sv-se'] = "Åtkomstkontrollista kan tillåta eller neka intervall av IP-adresser.";
$text['title_description-access_controls']['uk-ua'] = "Список контролю доступу може дозволити або заборонити діапазони IP-адрес.";
$text['title_description-access_controls']['tr-tr'] = "Erişim kontrol listesi IP adres aralıklarına izin verebilir veya reddedebilir.";
$text['title_description-access_controls']['zh-cn'] = "访问控制列表可以允许或拒绝 IP 地址范围。";
$text['title_description-access_controls']['ja-jp'] = "アクセス コントロール リストでは、IP アドレスの範囲を許可または拒否できます。";
$text['title_description-access_controls']['ko-kr'] = "액세스 제어 목록은 IP 주소 범위를 허용하거나 거부할 수 있습니다.";
$text['description-node_type']['en-us'] = "Select the type.";
$text['description-node_type']['en-gb'] = "Select the type.";
$text['description-node_type']['ar-eg'] = "حدد نوع.";
@ -594,4 +648,31 @@ $text['description-access_control_default']['zh-cn'] = "选择默认类型。";
$text['description-access_control_default']['ja-jp'] = "デフォルトのタイプを選択します。";
$text['description-access_control_default']['ko-kr'] = "기본 유형을 선택합니다.";
$text['description-access_control_export']['en-us'] = "Select the fields you wish to include in the export.";
$text['description-access_control_export']['en-gb'] = "Select the fields you wish to include in the export.";
$text['description-access_control_export']['ar-eg'] = "حدد الحقول التي ترغب في تضمينها في التصدير.";
$text['description-access_control_export']['de-at'] = "Wählen Sie die Felder aus, die Sie in den Export einbeziehen möchten.";
$text['description-access_control_export']['de-ch'] = "Wählen Sie die Felder aus, die Sie in den Export einbeziehen möchten.";
$text['description-access_control_export']['de-de'] = "Wählen Sie die Felder aus, die Sie in den Export einbeziehen möchten.";
$text['description-access_control_export']['ek-gr'] = "Επιλέξτε τα πεδία που θέλετε να συμπεριλάβετε στην εξαγωγή.";
$text['description-access_control_export']['es-cl'] = "Seleccione los campos que desea incluir en la exportación.";
$text['description-access_control_export']['es-mx'] = "Seleccione los campos que desea incluir en la exportación.";
$text['description-access_control_export']['fr-ca'] = "Sélectionnez les champs que vous souhaitez inclure dans l'exportation.";
$text['description-access_control_export']['fr-fr'] = "Sélectionnez les champs que vous souhaitez inclure dans l'exportation.";
$text['description-access_control_export']['he-il'] = "בחר את השדות שברצונך לכלול בייצוא.";
$text['description-access_control_export']['it-it'] = "Seleziona i campi che desideri includere nell'esportazione.";
$text['description-access_control_export']['ka-ge'] = "აირჩიეთ ექსპორტში ჩასასმელი ველები.";
$text['description-access_control_export']['nl-nl'] = "Selecteer de velden die u in de export wilt opnemen.";
$text['description-access_control_export']['pl-pl'] = "Wybierz pola, które chcesz uwzględnić w eksporcie.";
$text['description-access_control_export']['pt-br'] = "Selecione os campos que deseja incluir na exportação.";
$text['description-access_control_export']['pt-pt'] = "Selecione os campos que deseja incluir na exportação.";
$text['description-access_control_export']['ro-ro'] = "Selectați câmpurile pe care doriți să le includeți în export.";
$text['description-access_control_export']['ru-ru'] = "Выберите поля, которые вы хотите включить в экспорт.";
$text['description-access_control_export']['sv-se'] = "Välj de fält du vill inkludera i exporten.";
$text['description-access_control_export']['uk-ua'] = "Виберіть поля, які потрібно включити в експорт.";
$text['description-access_control_export']['tr-tr'] = "Dışa aktarmaya dahil etmek istediğiniz alanları seçin.";
$text['description-access_control_export']['zh-cn'] = "选择您希望包含在导出中的字段。";
$text['description-access_control_export']['ja-jp'] = "エクスポートに含めるフィールドを選択します。";
$text['description-access_control_export']['ko-kr'] = "내보내기에 포함할 필드를 선택합니다.";
?>

View File

@ -45,4 +45,13 @@
$apps[$x]['default_settings'][$y]['default_setting_value'] = "90";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Number of days to retain the maintenance logs in the database.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "e329db05-2967-422a-a71f-d0175b083828";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "call_recordings";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "record_extension";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "mp3";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Call recording file format options: wav, mp3";
?>

View File

@ -37,6 +37,21 @@
exit;
}
//get the session settings
$domain_uuid = $_SESSION['domain_uuid'];
$domain_name = $_SESSION['domain_name'];
$user_uuid = $_SESSION['user_uuid'];
$gateways = $_SESSION['gateways'];
$user = $_SESSION['user'];
//initialize the settings object
$settings = new settings(["domain_uuid" => $domain_uuid, "user_uuid" => $user_uuid]);
//get the settings
$template_name = $settings->get('domain', 'template', 'default');
$theme_button_icon_back = $settings->get('theme', 'button_icon_back', '');
$theme_button_icon_all = $settings->get('theme', 'button_icon_all', '');
//add multi-lingual support
$language = new text;
$text = $language->get();
@ -46,7 +61,7 @@
if ($show != "all") { $show = ''; }
//include theme config for button images
include_once("themes/".$_SESSION['domain']['template']['name']."/config.php");
include_once("themes/".$template_name."/config.php");
//set the command
$switch_cmd = 'show channels as json';
@ -80,7 +95,7 @@
if (($show == 'all' && permission_exists('call_active_all'))) {
$rows[] = $row;
}
elseif ($row['domain_name'] == $_SESSION['domain_name']) {
elseif ($row['domain_name'] == $domain_name) {
$rows[] = $row;
}
}
@ -131,20 +146,20 @@
echo " <div class='heading'><b>".$text['title']."</b><div class='count'>".number_format($num_rows)."</div></div>\n";
echo " <div class='actions'>\n";
echo " <span id='refresh_state'>".button::create(['type'=>'button','title'=>$text['label-refresh_pause'],'icon'=>'sync-alt fa-spin','onclick'=>'refresh_stop()'])."</span>";
if (permission_exists('call_active_eavesdrop') && !empty($_SESSION['user']['extensions'])) {
if (sizeof($_SESSION['user']['extensions']) > 1) {
echo " <input type='hidden' id='eavesdrop_dest' value=\"".(($_REQUEST['eavesdrop_dest'] == '') ? $_SESSION['user']['extension'][0]['destination'] : escape($_REQUEST['eavesdrop_dest']))."\">\n";
if (permission_exists('call_active_eavesdrop') && !empty($user['extensions'])) {
if (sizeof($user['extensions']) > 1) {
echo " <input type='hidden' id='eavesdrop_dest' value=\"".(($_REQUEST['eavesdrop_dest'] == '') ? $user['extension'][0]['destination'] : escape($_REQUEST['eavesdrop_dest']))."\">\n";
echo " <i class='fas fa-headphones' style='margin-left: 15px; cursor: help;' title='".$text['description-eavesdrop_destination']."' align='absmiddle'></i>\n";
echo " <select class='formfld' style='margin-right: 5px;' align='absmiddle' onchange=\"document.getElementById('eavesdrop_dest').value = this.options[this.selectedIndex].value; refresh_start();\" onfocus='refresh_stop();'>\n";
if (is_array($_SESSION['user']['extensions'])) {
foreach ($_SESSION['user']['extensions'] as $user_extension) {
if (is_array($user['extensions'])) {
foreach ($user['extensions'] as $user_extension) {
echo " <option value='".escape($user_extension)."' ".(($_REQUEST['eavesdrop_dest'] == $user_extension) ? "selected" : null).">".escape($user_extension)."</option>\n";
}
}
echo " </select>\n";
}
else if (sizeof($_SESSION['user']['extensions']) == 1) {
echo " <input type='hidden' id='eavesdrop_dest' value=\"".escape($_SESSION['user']['extension'][0]['destination'])."\">\n";
else if (sizeof($user['extensions']) == 1) {
echo " <input type='hidden' id='eavesdrop_dest' value=\"".escape($user['extension'][0]['destination'])."\">\n";
}
}
if (permission_exists('call_active_hangup') && $rows) {
@ -152,10 +167,10 @@
}
if (permission_exists('call_active_all')) {
if ($show == "all") {
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'link'=>'calls_active.php','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$theme_button_icon_back,'link'=>'calls_active.php','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
}
else {
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'calls_active.php?show=all','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$theme_button_icon_all,'link'=>'calls_active.php?show=all','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
}
}
echo " </div>\n";
@ -224,20 +239,14 @@
$cid_num = str_replace("+", "", $cid_num);
//replace gateway uuid with name
if (is_array($_SESSION['gateways']) && sizeof($_SESSION['gateways']) > 0) {
foreach ($_SESSION['gateways'] as $gateway_uuid => $gateway_name) {
if (is_array($gateways) && sizeof($gateways) > 0) {
foreach ($gateways as $gateway_uuid => $gateway_name) {
$application_data = str_replace($gateway_uuid, $gateway_name, $application_data);
}
}
//convert $created to a UNIX timestamp
$created_timestamp = strtotime($created);
//get the current timestamp
$now = time();
//calculate elapsed seconds
$elapsed_seconds = $now - $created_timestamp;
$elapsed_seconds = time() - $created_epoch;
//convert seconds to hours, minutes, and seconds
$hours = floor($elapsed_seconds / 3600);
@ -276,7 +285,7 @@
if (permission_exists('call_active_eavesdrop') || permission_exists('call_active_hangup')) {
echo " <td class='button right' style='padding-right: 0;'>\n";
//eavesdrop
if (permission_exists('call_active_eavesdrop') && $callstate == 'ACTIVE' && !empty($_SESSION['user']['extensions']) && !in_array($cid_num, $_SESSION['user']['extensions'])) {
if (permission_exists('call_active_eavesdrop') && $callstate == 'ACTIVE' && !empty($user['extensions']) && !in_array($cid_num, $user['extensions'])) {
echo button::create(['type'=>'button','label'=>$text['label-eavesdrop'],'icon'=>'headphones','collapse'=>'hide-lg-dn','onclick'=>"if (confirm('".$text['confirm-eavesdrop']."')) { eavesdrop_call('".escape($cid_num)."','".escape($uuid)."'); } else { this.blur(); return false; }",'onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
}
//hangup

View File

@ -41,10 +41,13 @@
$language = new text;
$text = $language->get();
//initialize the database
$database = new database;
//initialize the database object
$database = database::new();
//initialize the destinations object
//initialize the settings object
$settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid]);
//initialize the destination object
$destination = new destinations;
//initialize the ringbacks object
@ -68,17 +71,20 @@
default: $destination_type = 'inbound';
}
//get the call recording extension
$record_extension = $settings->get('call_recordings', 'record_extension', 'wav');
//get total destination count from the database, check limit, if defined
if (!permission_exists('destination_domain')) {
if ($action == 'add') {
if (!empty($_SESSION['limit']['destinations']['numeric'])) {
if (!empty($settings->get('limit', 'destinations', ''))) {
$sql = "select count(*) from v_destinations where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$total_destinations = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
if ($total_destinations >= $_SESSION['limit']['destinations']['numeric']) {
message::add($text['message-maximum_destinations'].' '.$_SESSION['limit']['destinations']['numeric'], 'negative');
if ($total_destinations >= $settings->get('limit', 'destinations', '')) {
message::add($text['message-maximum_destinations'].' '.$settings->get('limit', 'destinations', ''), 'negative');
header('Location: destinations.php');
exit;
}
@ -199,7 +205,7 @@
if (empty($destination_enabled)) { $msg .= $text['message-required']." ".$text['label-destination_enabled']."<br>\n"; }
//check for duplicates
if ($destination_type == 'inbound' && $destination_number != $db_destination_number && $_SESSION['destinations']['unique']['boolean'] == 'true') {
if ($destination_type == 'inbound' && $destination_number != $db_destination_number && $settings->get('destinations', 'unique', '')) {
$sql = "select count(*) from v_destinations ";
$sql .= "where (destination_number = :destination_number or destination_prefix || destination_number = :destination_number) ";
$sql .= "and destination_type = 'inbound' ";
@ -448,15 +454,15 @@
if (!empty($destination_condition_field)) {
$dialplan_detail_type = $destination_condition_field;
}
elseif (!empty($_SESSION['dialplan']['destination']['text'])) {
$dialplan_detail_type = $_SESSION['dialplan']['destination']['text'];
elseif (!empty($settings->get('dialplan', 'destination', ''))) {
$dialplan_detail_type = $settings->get('dialplan', 'destination', '');
}
else {
$dialplan_detail_type = "destination_number";
}
//authorized specific dialplan_detail_type that are safe, sanitize all other values
$dialplan_detail_type = $_SESSION['dialplan']['destination']['text'];
$dialplan_detail_type = $settings->get('dialplan', 'destination', '');
switch ($dialplan_detail_type) {
case 'destination_number':
break;
@ -534,10 +540,11 @@
}
if (!empty($destination_record) && $destination_record == 'true') {
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_path=\${recordings_dir}/\${domain_name}/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_name=\${uuid}.\${record_ext}\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_name=\${uuid}.".$record_extension."\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_append=true\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_in_progress=true\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"recording_follow_transfer=true\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_stereo_swap=true\" inline=\"true\"/>\n";
$dialplan["dialplan_xml"] .= " <action application=\"record_session\" data=\"\${record_path}/\${record_name}\" inline=\"false\"/>\n";
}
if (!empty($destination_hold_music)) {
@ -596,7 +603,7 @@
$dialplan["dialplan_xml"] .= "</extension>\n";
//dialplan details
if ($_SESSION['destinations']['dialplan_details']['boolean'] == "true") {
if ($settings->get('destinations', 'dialplan_details', '')) {
//set initial value of the row id
$y=0;
@ -637,8 +644,8 @@
if (!empty($destination_condition_field)) {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $destination_condition_field;
}
elseif (!empty($_SESSION['dialplan']['destination']['text'])) {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $_SESSION['dialplan']['destination']['text'];
elseif (!empty($settings->get('dialplan', 'destination', ''))) {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $settings->get('dialplan', 'destination', '');
}
else {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "regex";
@ -697,8 +704,8 @@
if (!empty($destination_condition_field)) {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $destination_condition_field;
}
elseif (!empty($_SESSION['dialplan']['destination']['text'])) {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $_SESSION['dialplan']['destination']['text'];
elseif (!empty($settings->get('dialplan', 'destination', ''))) {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $settings->get('dialplan', 'destination', '');
}
else {
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "destination_number";
@ -946,7 +953,7 @@
$dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_name=\${uuid}.\${record_ext}";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_name=\${uuid}.".$record_extension;
$dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = $dialplan_detail_group;
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order;
@ -983,6 +990,20 @@
//increment the dialplan detail order
$dialplan_detail_order = $dialplan_detail_order + 10;
//add a variable
$dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_stereo_swap=true";
$dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = $dialplan_detail_group;
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order;
$y++;
//increment the dialplan detail order
$dialplan_detail_order = $dialplan_detail_order + 10;
//add a variable
$dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid;
@ -1164,10 +1185,10 @@
//clear the cache
$cache = new cache;
if ($_SESSION['destinations']['dialplan_mode']['text'] == 'multiple') {
if ($settings->get('destinations', 'dialplan_mode', '') == 'multiple') {
$cache->delete("dialplan:".$destination_context);
}
if ($_SESSION['destinations']['dialplan_mode']['text'] == 'single') {
if ($settings->get('destinations', 'dialplan_mode', '') == 'single') {
if (isset($destination_prefix) && is_numeric($destination_prefix) && isset($destination_number) && is_numeric($destination_number)) {
$cache->delete("dialplan:".$destination_context.":".$destination_prefix.$destination_number);
$cache->delete("dialplan:".$destination_context.":+".$destination_prefix.$destination_number);
@ -2081,7 +2102,7 @@
echo " ".$text['label-destination_enabled']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
if (substr($settings->get('theme', 'input_toggle_style', ''), 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='destination_enabled' name='destination_enabled' value='true' ".($destination_enabled == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span>\n";

View File

@ -52,22 +52,33 @@ if (!class_exists('destinations')) {
private $list_page;
private $table;
private $uuid_prefix;
private $database;
private $settings;
/**
* Called when the object is created
*/
public function __construct($settings = null) {
public function __construct($setting_array = []) {
//open a database connection
if (empty($setting_array['database'])) {
$this->database = database::new();
} else {
$this->database = $setting_array['database'];
}
//get the settings object
if (empty($setting_array['settings'])) {
$this->settings = new settings();
} else {
$this->settings = $setting_array['settings'];
}
//set the domain details
if (is_null($this->domain_uuid)) {
$this->domain_uuid = $_SESSION['domain_uuid'];
}
//get the email queue settings
if (!isset($settings)) {
$this->settings = new settings();
}
//assign private variables
$this->app_name = 'destinations';
$this->app_uuid = '5ec89622-b19c-3559-64f0-afde802ab139';
@ -180,8 +191,7 @@ if (!class_exists('destinations')) {
$sql = "select domain_name from v_domains ";
$sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $this->domain_uuid;
$database = new database;
$this->domain_name = $database->select($sql, $parameters, 'column');
$this->domain_name = $this->database->select($sql, $parameters, 'column');
//initialize variable
$response = '';
@ -252,8 +262,7 @@ if (!class_exists('destinations')) {
}
$sql .= "order by ".trim($row['order_by']);
$sql = str_replace("\${domain_uuid}", $this->domain_uuid, $sql);
$database = new database;
$result = $database->select($sql, null, 'all');
$result = $this->database->select($sql, null, 'all');
$this->destinations[$x]['result']['sql'] = $sql;
$this->destinations[$x]['result']['data'] = $result;
@ -550,9 +559,6 @@ if (!class_exists('destinations')) {
//set the global variables
global $db_type;
//connect to the database
$database = new database;
//set default values
$destination_name = '';
$destination_id = '';
@ -561,7 +567,7 @@ if (!class_exists('destinations')) {
$sql = "select domain_name from v_domains ";
$sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $this->domain_uuid;
$this->domain_name = $database->select($sql, $parameters, 'column');
$this->domain_name = $this->database->select($sql, $parameters, 'column');
//get the destinations
if (!is_array($this->destinations)) {
@ -625,7 +631,7 @@ if (!class_exists('destinations')) {
}
$sql .= "order by ".trim($row['order_by']);
$sql = str_replace("\${domain_uuid}", $this->domain_uuid, $sql);
$result = $database->select($sql, null, 'all');
$result = $this->database->select($sql, null, 'all');
$this->destinations[$x]['result']['sql'] = $sql;
$this->destinations[$x]['result']['data'] = $result;
@ -764,14 +770,11 @@ if (!class_exists('destinations')) {
//set the global variables
global $db_type;
//connect to the database
$database = new database;
//get the domain_name
$sql = "select domain_name from v_domains ";
$sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $this->domain_uuid;
$this->domain_name = $database->select($sql, $parameters, 'column');
$this->domain_name = $this->database->select($sql, $parameters, 'column');
//get the destinations
if (!is_array($this->destinations)) {
@ -836,7 +839,7 @@ if (!class_exists('destinations')) {
}
$sql .= "order by ".trim($row['order_by']);
$sql = str_replace("\${domain_uuid}", $this->domain_uuid, $sql);
$result = $database->select($sql, null, 'all');
$result = $this->database->select($sql, null, 'all');
$this->destinations[$x]['result']['sql'] = $sql;
$this->destinations[$x]['result']['data'] = $result;
@ -1063,8 +1066,7 @@ if (!class_exists('destinations')) {
$sql = "select dialplan_uuid, destination_context from v_destinations ";
$sql .= "where destination_uuid = :destination_uuid ";
$parameters['destination_uuid'] = $record['uuid'];
$database = new database;
$row = $database->select($sql, $parameters, 'row');
$row = $this->database->select($sql, $parameters, 'row');
unset($sql, $parameters);
//include dialplan in array
@ -1086,10 +1088,9 @@ if (!class_exists('destinations')) {
$p->add('dialplan_detail_delete', 'temp');
//execute delete
$database = new database;
$database->app_name = $this->app_name;
$database->app_uuid = $this->app_uuid;
$database->delete($array);
$this->database->app_name = $this->app_name;
$this->database->app_uuid = $this->app_uuid;
$this->database->delete($array);
unset($array);
//revoke temporary permissions
@ -1255,8 +1256,7 @@ if (!class_exists('destinations')) {
if (!(!empty($_GET['show']) && $_GET['show'] === 'all' && permission_exists('destination_summary_all'))) {
$parameters['domain_uuid'] = $this->domain_uuid;
}
$database = new database;
$summary = $database->select($sql, $parameters, 'all');
$summary = $this->database->select($sql, $parameters, 'all');
unset($parameters);
//if (!empty($this->start_stamp_begin) && !empty($this->start_stamp_end)) {

View File

@ -44,8 +44,9 @@
$device_firmware_version = '';
$device_template ='';
//get the domain uuid
//get the domain values
$domain_uuid = $_SESSION['domain_uuid'] ?? '';
$domain_name = $_SESSION['domain_name'] ?? '';
//initialize the database object
$database = database::new();
@ -64,12 +65,12 @@
//get the total device count from the database, check the limit, if defined
if ($action == 'add') {
if (!empty($_SESSION['limit']['devices']['numeric']) && $_SESSION['limit']['devices']['numeric']) {
if (!empty($settings->get('limit', 'devices', ''))) {
$sql = "select count(*) from v_devices where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['domain_uuid'] = $domain_uuid;
$total_devices = $database->select($sql, $parameters, 'column');
if ($total_devices >= $_SESSION['limit']['devices']['numeric']) {
message::add($text['message-maximum_devices'].' '.$_SESSION['limit']['devices']['numeric'], 'negative');
if ($total_devices >= $settings->get('limit', 'devices', '')) {
message::add($text['message-maximum_devices'].' '.$settings->get('limit', 'devices', ''), 'negative');
header('Location: devices.php');
exit;
}
@ -228,14 +229,14 @@
$sql .= " and d1.device_uuid <> :device_uuid ";
}
$parameters['device_address'] = $device_address;
$domain_name = $database->select($sql, $parameters, 'column');
if ($domain_name != '') {
$message = $text['message-duplicate'].(if_group("superadmin") && $_SESSION["domain_name"] != $domain_name ? ": ".$domain_name : null);
$device_domain_name = $database->select($sql, $parameters, 'column');
if ($device_domain_name != '') {
$message = $text['message-duplicate'].($device_domain_name != $domain_name ? ": ".$device_domain_name : null);
message::add($message,'negative');
header('Location: devices.php');
exit;
}
unset($sql, $parameters, $domain_name);
unset($sql, $parameters, $device_domain_name);
}
//add or update the database
@ -304,6 +305,7 @@
$device_line_uuid = uuid();
$new_line = true;
}
$array['devices'][0]['device_lines'][$y]['domain_uuid'] = $domain_uuid;
$array['devices'][0]['device_lines'][$y]['device_uuid'] = $device_uuid;
$array['devices'][0]['device_lines'][$y]['device_line_uuid'] = $device_line_uuid;
@ -311,23 +313,23 @@
$array['devices'][0]['device_lines'][$y]['server_address'] = $row["server_address"];
if (permission_exists('device_line_outbound_proxy_primary')) {
$array['devices'][0]['device_lines'][$y]['outbound_proxy_primary'] = $row["outbound_proxy_primary"];
} else if ($new_line && isset($_SESSION['provision']['outbound_proxy_primary'])) {
$array['devices'][0]['device_lines'][$y]['outbound_proxy_primary'] = $_SESSION['provision']['outbound_proxy_primary']['text'];
} else if ($new_line && !empty($settings->get('provision', 'outbound_proxy_primary'))) {
$array['devices'][0]['device_lines'][$y]['outbound_proxy_primary'] = $settings->get('provision', 'outbound_proxy_primary', '');
}
if (permission_exists('device_line_outbound_proxy_secondary')) {
$array['devices'][0]['device_lines'][$y]['outbound_proxy_secondary'] = $row["outbound_proxy_secondary"];
} else if ($new_line && isset($_SESSION['provision']['outbound_proxy_secondary'])) {
$array['devices'][0]['device_lines'][$y]['outbound_proxy_secondary'] = $_SESSION['provision']['outbound_proxy_secondary']['text'];
} else if ($new_line && !empty($settings->get('provision', 'outbound_proxy_secondary'))) {
$array['devices'][0]['device_lines'][$y]['outbound_proxy_secondary'] = $settings->get('provision', 'outbound_proxy_secondary', '');
}
if (permission_exists('device_line_server_address_primary')) {
$array['devices'][0]['device_lines'][$y]['server_address_primary'] = $row["server_address_primary"];
} else if ($new_line && isset($_SESSION['provision']['server_address_primary'])) {
$array['devices'][0]['device_lines'][$y]['server_address_primary'] = $_SESSION['provision']['server_address_primary']['text'];
} else if ($new_line && !empty($settings->get('provision', 'server_address_primary'))) {
$array['devices'][0]['device_lines'][$y]['server_address_primary'] = $settings->get('provision', 'server_address_primary', '');
}
if (permission_exists('device_line_server_address_secondary')) {
$array['devices'][0]['device_lines'][$y]['server_address_secondary'] = $row["server_address_secondary"];
} else if ($new_line && isset($_SESSION['provision']['server_address_secondary'])) {
$array['devices'][0]['device_lines'][$y]['server_address_secondary'] = $_SESSION['provision']['server_address_secondary']['text'];
} else if ($new_line && !empty($settings->get('provision', 'server_address_secondary'))) {
$array['devices'][0]['device_lines'][$y]['server_address_secondary'] = $settings->get('provision', 'server_address_secondary', '');
}
if (permission_exists('device_line_label')) {
$array['devices'][0]['device_lines'][$y]['label'] = $row["label"];
@ -351,7 +353,7 @@
}
else {
if ($action == "add") {
$array['devices'][0]['device_lines'][$y]['sip_port'] = $_SESSION['provision']['line_sip_port']['numeric'];
$array['devices'][0]['device_lines'][$y]['sip_port'] = $settings->get('provision', 'line_sip_port', '5060');
}
}
if (permission_exists('device_line_transport')) {
@ -359,7 +361,7 @@
}
else {
if ($action == "add") {
$array['devices'][0]['device_lines'][$y]['sip_transport'] = $_SESSION['provision']['line_sip_transport']['text'];
$array['devices'][0]['device_lines'][$y]['sip_transport'] = $settings->get('provision', 'line_sip_transport', 'tcp');
}
}
if (permission_exists('device_line_register_expires')) {
@ -367,7 +369,7 @@
}
else {
if ($action == "add") {
$array['devices'][0]['device_lines'][$y]['register_expires'] = $_SESSION['provision']['line_register_expires']['numeric'];
$array['devices'][0]['device_lines'][$y]['register_expires'] = $settings->get('provision', 'line_register_expires', '120');
}
}
$y++;
@ -480,7 +482,7 @@
}
//write the provision files
if (!empty($_SESSION['provision']['path']['text'])) {
if (!empty($settings->get('provision', 'path'))) {
$prov = new provision(['settings' => $settings]);
$prov->domain_uuid = $domain_uuid;
$response = $prov->write();
@ -509,7 +511,6 @@
$sql = "select * from v_devices ";
$sql .= "where device_uuid = :device_uuid ";
$parameters['device_uuid'] = $device_uuid;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$device_address = $row["device_address"];
@ -533,6 +534,13 @@
unset($sql, $parameters, $row);
}
//get device lines
$sql = "select * ";
$sql .= "from v_domains ";
$sql .= "order by domain_name asc ";
$domains = $database->select($sql, null, 'all');
unset($sql, $parameters);
//set the defaults
if (empty($device_enabled)) { $device_enabled = 'true'; }
@ -563,20 +571,22 @@
}
//get device lines
$sql = "select * from v_device_lines ";
$sql = "select l.*, d.domain_name ";
$sql .= "from v_device_lines as l, v_domains as d ";
$sql .= "where device_uuid = :device_uuid ";
$sql .= "and l.domain_uuid = d.domain_uuid ";
$sql .= "order by cast(line_number as int) asc ";
$parameters['device_uuid'] = $device_uuid ?? null;
$device_lines = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
//set the new line defaults
$device_lines[$x]['line_number'] = '';
$device_lines[$x]['server_address'] = '';
$device_lines[$x]['outbound_proxy_primary'] = $_SESSION['provision']['outbound_proxy_primary']['text'] ?? null;
$device_lines[$x]['outbound_proxy_secondary'] = $_SESSION['provision']['outbound_proxy_secondary']['text'] ?? null;
$device_lines[$x]['server_address_primary'] = $_SESSION['provision']['server_address_primary']['text'] ?? null;
$device_lines[$x]['server_address_secondary'] = $_SESSION['provision']['server_address_secondary']['text'] ?? null;
$device_lines[$x]['outbound_proxy_primary'] = $settings->get('provision', 'outbound_proxy_primary', null);
$device_lines[$x]['outbound_proxy_secondary'] = $settings->get('provision', 'outbound_proxy_secondary', null);
$device_lines[$x]['server_address_primary'] = $settings->get('provision', 'server_address_primary', null);
$device_lines[$x]['server_address_secondary'] = $settings->get('provision', 'server_address_secondary', null);
$device_lines[$x]['label'] = '';
$device_lines[$x]['display_name'] = '';
$device_lines[$x]['user_id'] = '';
@ -584,9 +594,9 @@
$device_lines[$x]['password'] = '';
$device_lines[$x]['shared_line'] = '';
$device_lines[$x]['enabled'] = '';
$device_lines[$x]['sip_port'] = $_SESSION['provision']['line_sip_port']['numeric'];
$device_lines[$x]['sip_transport'] = $_SESSION['provision']['line_sip_transport']['text'];
$device_lines[$x]['register_expires'] = $_SESSION['provision']['line_register_expires']['numeric'];
$device_lines[$x]['sip_port'] = $settings->get('provision', 'line_sip_port', '5060');
$device_lines[$x]['sip_transport'] = $settings->get('provision', 'line_sip_transport', 'tcp');
$device_lines[$x]['register_expires'] = $settings->get('provision', 'line_register_expires', '120');
//get device keys
$sql = "select * from v_device_keys ";
@ -612,11 +622,11 @@
//add empty device key row(s)
if (!is_uuid($device_uuid)) {
$rows = $_SESSION['devices']['key_add_rows']['numeric'] ?? 1;
$rows = $settings->get('devices', 'key_add_rows', '10');
$id = 0;
}
else {
$rows = $_SESSION['devices']['key_edit_rows']['numeric'] ?? 1;
$rows = $settings->get('devices', 'key_edit_rows', '3');
$id = count($device_keys) + 1;
}
for ($x = 0; $x < $rows; $x++) {
@ -638,7 +648,6 @@
$sql .= "from v_device_vendors ";
$sql .= "where enabled = 'true' ";
$sql .= "order by name asc ";
$device_vendors = $database->select($sql, null, 'all');
unset($sql);
@ -662,11 +671,11 @@
//add empty device setting row(s)
if (!is_uuid($device_uuid)) {
$rows = $_SESSION['devices']['setting_add_rows']['numeric'] ?? 1;
$rows = $settings->get('devices', 'key_add_rows', '10');
$id = 0;
}
else {
$rows = $_SESSION['devices']['setting_edit_rows']['numeric'] ?? 1;
$rows = $settings->get('devices', 'key_edit_rows', '3');
$id = count($device_settings) + 1;
}
for ($x = 0; $x < $rows; $x++) {
@ -694,12 +703,7 @@
//get the first device line info (found on the local server) for the provision button
foreach ($device_lines as $row) {
if (
array_key_exists($row['domain_uuid'], $_SESSION['domains']) &&
$row['server_address'] == $_SESSION['domains'][$row['domain_uuid']]['domain_name'] &&
!empty($row['user_id']) &&
!empty($row['server_address'])
) {
if ($row['server_address'] == $row['domain_name'] && !empty($row['user_id']) && !empty($row['server_address'])) {
$user_id = $row['user_id'];
$server_address = $row['server_address'];
break;
@ -731,14 +735,13 @@
echo " $('#target_file').fadeOut(fade_speed);\n";
echo " document.getElementById('target_file').selectedIndex = 0;\n";
echo " }\n";
echo " function download(d) {\n";
echo " if (d == '".$text['label-download']."') return;\n";
if ($_SESSION['provision']['http_domain_filter']['boolean'] == "false") {
$domain_name = $_SERVER["HTTP_HOST"];
if ($settings->get('provision', 'http_domain_filter', true)) {
$provision_domain_name = $domain_name;
}
else {
$domain_name = $_SESSION['domain_name'];
$provision_domain_name = $_SERVER["HTTP_HOST"];
}
if (!isset($_SERVER['HTTP_PROTOCOL'])) {
@ -747,7 +750,7 @@
if ($_SERVER['HTTPS'] == 'on') { $_SERVER['HTTP_PROTOCOL'] = 'https'; }
if ($_SERVER['SERVER_PORT'] == '443') { $_SERVER['HTTP_PROTOCOL'] = 'https'; }
}
echo " window.location = '".$_SERVER['HTTP_PROTOCOL']."://".$domain_name.PROJECT_PATH."/app/provision/index.php?address=".escape($device_address ?? '')."&file=' + d + '&content_type=application/octet-stream';\n";
echo " window.location = '".$_SERVER['HTTP_PROTOCOL']."://".$provision_domain_name.PROJECT_PATH."/app/provision/index.php?address=".escape($device_address ?? '')."&file=' + d + '&content_type=application/octet-stream';\n";
echo " }\n";
echo "\n";
@ -793,16 +796,11 @@
//add the QR code
if (permission_exists("device_line_password") && !empty($device_template) && $qr_code_enabled) {
//set the mode
if (isset($_SESSION['theme']['qr_image'])) {
if (!empty($_SESSION['theme']['qr_image'])) {
$mode = '4';
}
else {
$mode = '0';
}
if (!empty($settings->get('theme', 'qr_image', ''))) {
$mode = '4';
}
else {
$mode = '4';
$mode = '0';
}
//get the device line settings
@ -922,15 +920,10 @@
//build content for linphone
if ($device_template == "linphone/default") {
$auth_string = '';
if (
!empty($_SESSION['provision']['http_auth_enabled']['boolean']) &&
$_SESSION['provision']['http_auth_enabled']['boolean'] == 'true' &&
!empty($_SESSION['provision']['http_auth_username']['text']) &&
!empty($_SESSION['provision']['http_auth_password'][0])
) {
$auth_string = $_SESSION['provision']['http_auth_username']['text'].':'.$_SESSION['provision']['http_auth_password'][0].'@';
if ($settings->get('provision', 'http_auth_enabled', true) && !empty($settings->get('provision', 'http_auth_username', '')) && !empty($settings->get('provision', 'http_auth_password', ''))) {
$auth_string = $settings->get('provision', 'http_auth_username', '').':'.$settings->get('provision', 'http_auth_password', '').'@';
}
$content = "https://".$auth_string.$_SESSION['domain_name'].'/app/provision/index.php?address='.$device_address;
$content = "https://".$auth_string.$provision_domain_name.'/app/provision/index.php?address='.$device_address;
}
//stream the file
@ -1001,16 +994,16 @@
echo " <img id='qr_code' src='data:image/jpeg;base64,".base64_encode($image)."'>\n";
echo "</div>\n";
}
/*
if (isset($_SESSION['theme']['qr_image'])) {
echo "<img id='img-buffer' src='".$_SESSION["theme"]["qr_image"]["text"]."' style='display: none;'>";
if (!empty($settings->get('theme', 'qr_image', ''))) {
echo "<img id='img-buffer' src='".$settings->get('theme', 'qr_image', '')."' style='display: none;'>";
}
else {
echo "<img id='img-buffer' src='".PROJECT_PATH."/themes/".$_SESSION["domain"]["template"]["name"]."/images/qr_code.png' style='display: none;'>";
echo "<img id='img-buffer' src='".PROJECT_PATH."/themes/".$settings->get('domain', 'template', '')."/images/qr_code.png' style='display: none;'>";
}
*/
}
//show the content
@ -1020,7 +1013,7 @@
echo "<div class='action_bar' id='action_bar'>\n";
echo " <div class='heading'><b>".$text['header-device']."</b></div>\n";
echo " <div class='actions'>\n";
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','link'=>'devices.php']);
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back', ''),'id'=>'btn_back','link'=>'devices.php']);
if ($action == 'update') {
$button_margin = 'margin-left: 15px;';
if (permission_exists("device_line_password") && $qr_code_enabled) {
@ -1038,7 +1031,7 @@
$template_dir = $prov->template_dir;
$files = glob($template_dir.'/'.$device_template.'/*');
//add file buttons and the file list
echo button::create(['type'=>'button','id'=>'button_files','label'=>$text['button-files'],'icon'=>$_SESSION['theme']['button_icon_download'],'style'=>($button_margin ?? ''),'onclick'=>'show_files()']);
echo button::create(['type'=>'button','id'=>'button_files','label'=>$text['button-files'],'icon'=>$settings->get('theme', 'button_icon_download', ''),'style'=>($button_margin ?? ''),'onclick'=>'show_files()']);
echo "<select class='formfld' style='display: none; width: auto;' name='target_file' id='target_file' onchange='download(this.value)'>\n";
echo " <option value=''>".$text['label-download']."</option>\n";
foreach ($files as $file) {
@ -1054,7 +1047,7 @@
unset($button_margin);
}
if (permission_exists('device_add')) {
echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'style'=>($button_margin ?? ''),'name'=>'btn_copy','onclick'=>"modal_open('modal-copy','new_address');"]);
echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$settings->get('theme', 'button_icon_copy', ''),'style'=>($button_margin ?? ''),'name'=>'btn_copy','onclick'=>"modal_open('modal-copy','new_address');"]);
unset($button_margin);
}
if (
@ -1063,11 +1056,11 @@
permission_exists('device_key_delete') ||
permission_exists('device_setting_delete')
) {
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'style'=>($button_margin ?? ''),'name'=>'btn_delete','onclick'=>"modal_open('modal-delete','btn_delete');"]);
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$settings->get('theme', 'button_icon_delete', ''),'style'=>($button_margin ?? ''),'name'=>'btn_delete','onclick'=>"modal_open('modal-delete','btn_delete');"]);
unset($button_margin);
}
}
echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','style'=>'margin-left: 15px;','onclick'=>'submit_form();']);
echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$settings->get('theme', 'button_icon_save', ''),'id'=>'btn_save','style'=>'margin-left: 15px;','onclick'=>'submit_form();']);
echo " </div>\n";
echo " <div style='clear: both;'></div>\n";
echo "</div>\n";
@ -1289,11 +1282,11 @@
//set the defaults
if (!permission_exists('device_line_server_address')) {
if (empty($row['server_address'])) { $row['server_address'] = $_SESSION['domain_name']; }
if (empty($row['server_address'])) { $row['server_address'] = $domain_name; }
}
if (empty($row['sip_transport'])) { $row['sip_transport'] = $_SESSION['provision']['line_sip_transport']['text']; }
if (!isset($row['sip_port'])) { $row['sip_port'] = $_SESSION['provision']['line_sip_port']['numeric']; } //used !isset to support a value of 0 as empty the empty function considers a value of 0 as empty.
if (empty($row['register_expires'])) { $row['register_expires'] = $_SESSION['provision']['line_register_expires']['numeric']; }
if (empty($row['sip_transport'])) { $row['sip_transport'] = $settings->get('provision', 'line_sip_transport', 'tcp'); }
if (!isset($row['sip_port'])) { $row['sip_port'] = $settings->get('provision', 'line_sip_port', '5060'); } //used !isset to support a value of 0 as empty the empty function considers a value of 0 as empty.
if (empty($row['register_expires'])) { $row['register_expires'] = $settings->get('provision', 'line_register_expires', '120'); }
//add the primary key uuid
if (!empty($row['device_line_uuid']) && is_uuid($row['device_line_uuid'])) {
@ -1323,10 +1316,10 @@
if (permission_exists('device_line_server_address_primary')) {
echo " <td valign='top' align='left' nowrap='nowrap'>\n";
if (isset($_SESSION['provision']['server_address_primary']) && !isset($_SESSION['provision']['server_address_primary']['text'])) {
if (!empty($settings->get('provision', 'server_address_primary', '')) && is_array($settings->get('provision', 'server_address_primary', ''))) {
echo " <select class='formfld' style='width: 75px;' name='device_lines[".$x."][server_address_primary]'>\n";
echo " <option value=''></option>\n";
foreach($_SESSION['provision']['server_address_primary'] as $field) {
foreach($settings->get('provision', 'server_address_primary', '') as $field) {
echo " <option value='".$field."' ".(($row['server_address_primary'] == $field) ? "selected" : null).">".$field."</option>\n";
}
echo " </select>\n";
@ -1339,10 +1332,10 @@
if (permission_exists('device_line_server_address_secondary')) {
echo " <td valign='top' align='left' nowrap='nowrap'>\n";
if (isset($_SESSION['provision']['server_address_secondary']) && !isset($_SESSION['provision']['server_address_secondary']['text'])) {
if (!empty($settings->get('provision', 'server_address_secondary', '')) && is_array($settings->get('provision', 'server_address_secondary', ''))) {
echo " <select class='formfld' style='width: 75px;' name='device_lines[".$x."][server_address_secondary]'>\n";
echo " <option value=''></option>\n";
foreach($_SESSION['provision']['server_address_secondary'] as $field) {
foreach($settings->get('provision', 'server_address_secondary', '') as $field) {
echo " <option value='".$field."' ".(($row['server_address_secondary'] == $field) ? "selected" : null).">".$field."</option>\n";
}
echo " </select>\n";
@ -1355,10 +1348,10 @@
if (permission_exists('device_line_outbound_proxy_primary')) {
echo " <td align='left'>\n";
if (isset($_SESSION['provision']['outbound_proxy_primary']) && !isset($_SESSION['provision']['outbound_proxy_primary']['text'])) {
if (!empty($settings->get('provision', 'outbound_proxy_primary', ''))) {
echo " <select class='formfld' style='width: 75px;' name='device_lines[".$x."][outbound_proxy_primary]'>\n";
echo " <option value=''></option>\n";
foreach($_SESSION['provision']['outbound_proxy_primary'] as $field) {
foreach($settings->get('provision', 'outbound_proxy_primary', '') as $field) {
echo " <option value='".$field."' ".(($row['outbound_proxy_primary'] == $field) ? "selected" : null).">".$field."</option>\n";
}
echo " </select>\n";
@ -1371,10 +1364,10 @@
if (permission_exists('device_line_outbound_proxy_secondary')) {
echo " <td align='left'>\n";
if (isset($_SESSION['provision']['outbound_proxy_secondary']) && !isset($_SESSION['provision']['outbound_proxy_secondary']['text'])) {
if (!empty($settings->get('provision', 'outbound_proxy_secondary', ''))) {
echo " <select class='formfld' style='width: 75px;' name='device_lines[".$x."][outbound_proxy_secondary]'>\n";
echo " <option value=''></option>\n";
foreach($_SESSION['provision']['outbound_proxy_secondary'] as $field) {
foreach($settings->get('provision', 'outbound_proxy_secondary', '') as $field) {
echo " <option value='".$field."' ".(($row['outbound_proxy_secondary'] == $field) ? "selected" : null).">".$field."</option>\n";
}
echo " </select>\n";
@ -1495,7 +1488,7 @@
foreach($device_profiles as $row) {
echo " <option value='".escape($row['device_profile_uuid'])."' ".(!empty($device_profile_uuid) && $row['device_profile_uuid'] == $device_profile_uuid ? "selected='selected'" : null).">".escape($row['device_profile_name'])." ".(($row['domain_uuid'] == '') ? "&nbsp;&nbsp;(".$text['select-global'].")" : null)."</option>\n";
}
echo " </select>\n";
echo " </select>\n";
}
else {
foreach($device_profiles as $row) {
@ -1963,7 +1956,7 @@
else {
echo " <option value=''>".$text['select-global']."</option>\n";
}
foreach ($_SESSION['domains'] as $row) {
foreach ($domains as $row) {
if ($row['domain_uuid'] == $domain_uuid) {
echo " <option value='".escape($row['domain_uuid'])."' selected='selected'>".escape($row['domain_name'])."</option>\n";
}
@ -1978,7 +1971,7 @@
echo "</tr>\n";
}
else {
echo " <input type='hidden' name='domain_uuid' id='domain_uuid' value=\"".$_SESSION['domain_uuid']."\"/>\n";
echo " <input type='hidden' name='domain_uuid' id='domain_uuid' value=\"".$domain_uuid."\"/>\n";
}
if (permission_exists('device_enable')) {
@ -1987,7 +1980,7 @@
echo " ".$text['label-device_enabled']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
if (substr($settings->get('theme', 'input_toggle_style', ''), 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='device_enabled' name='device_enabled' value='true' ".($device_enabled == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span>\n";

View File

@ -48,18 +48,6 @@
$database = database::new();
$settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid, 'user_uuid' => $user_uuid]);
//set all permissions
$has_device_import = permission_exists('device_import');
$has_device_edit = permission_exists('device_edit');
$has_device_all = permission_exists('device_all');
$has_device_delete = permission_exists('device_delete');
$has_device_domain_all = permission_exists('device_domain_all');
$has_device_export = permission_exists('device_export');
$has_device_vendor_view = permission_exists('device_vendor_view');
$has_device_profile_view = permission_exists('device_profile_view');
$has_device_add = permission_exists('device_add');
$has_show_all = &$has_device_domain_all;
//add multi-lingual support
$language = new text;
$text = $language->get();
@ -78,13 +66,13 @@
if (!empty($action) && !empty($devices) && is_array($devices) && @sizeof($devices) != 0) {
switch ($action) {
case 'toggle':
if ($has_device_edit) {
if (permission_exists('device_edit')) {
$obj = new device;
$obj->toggle($devices);
}
break;
case 'delete':
if ($has_device_delete) {
if (permission_exists('device_delete')) {
$obj = new device;
$obj->delete($devices);
}
@ -105,7 +93,7 @@
//get total devices count from the database
$sql = "select count(*) from v_devices ";
$sql .= "where domain_uuid = :domain_uuid ";
if (!$has_device_all && !$has_device_domain_all) {
if (!permission_exists('device_all') && !permission_exists('device_domain_all')) {
$sql .= "and device_user_uuid = :user_uuid ";
$parameters['user_uuid'] = $user_uuid;
}
@ -113,12 +101,6 @@
$total_devices = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
//update the has_device_add permission if the total device count is greater then set limit
$device_limit = $settings->get('limit', 'devices', null);
if ($has_device_add && $device_limit !== null) {
$has_device_add = $total_devices > $device_limit;
}
//get the domains if user has permission for show all
$domains = [];
if ($has_device_domain_all) {
@ -142,7 +124,7 @@
//prepare to page the results
$sql = "select count(*) from v_devices as d ";
if (isset($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
if (isset($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
if (!empty($search)) {
$sql .= "where ";
}
@ -150,7 +132,7 @@
else {
$sql .= "where (";
$sql .= " d.domain_uuid = :domain_uuid ";
if ($has_device_all) {
if (permission_exists('device_all')) {
$sql .= " or d.domain_uuid is null ";
}
$sql .= ") ";
@ -205,7 +187,7 @@
$param = "&search=".$search;
$param .= "&fields=".$fields;
}
if (!empty($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
if (!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
$param .= "&show=all";
}
$page = $_GET['page'] ?? 0;
@ -218,7 +200,7 @@
$sql .= "to_char(timezone(:time_zone, d.device_provisioned_date), 'DD Mon YYYY') as provisioned_date_formatted, \n";
$sql .= "to_char(timezone(:time_zone, d.device_provisioned_date), 'HH12:MI:SS am') as provisioned_time_formatted \n";
$sql .= "from v_devices as d, v_devices as d2 ";
if (isset($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
if (isset($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
$sql .= ", v_domains as d3 ";
}
$sql .= "where ( ";
@ -228,19 +210,19 @@
$sql .= " d.device_uuid = d2.device_uuid ";
$sql .= " ) ";
$sql .= ") ";
if (isset($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
if (isset($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
$sql .= " and d.domain_uuid = d3.domain_uuid ";
}
else {
$sql .= "and (";
$sql .= " d.domain_uuid = :domain_uuid ";
if ($has_device_all) {
if (permission_exists('device_all')) {
$sql .= " or d.domain_uuid is null ";
}
$sql .= ") ";
$parameters['domain_uuid'] = $domain_uuid;
}
if (!$has_device_all && !$has_device_domain_all) {
if (!permission_exists('device_all') && !permission_exists('device_domain_all')) {
$sql .= "and d.device_user_uuid = :user_uuid ";
$parameters['user_uuid'] = $user_uuid;
}
@ -314,33 +296,33 @@
echo "<div class='action_bar' id='action_bar'>\n";
echo " <div class='heading'><b>".$text['header-devices']."</b><div class='count'>".number_format($num_rows)."</div></div>\n";
echo " <div class='actions'>\n";
if ($has_device_import) {
if (permission_exists('device_import')) {
echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$settings->get('theme', 'button_icon_import'),'link'=>'device_imports.php']);
}
if ($has_device_export) {
if (permission_exists('device_export')) {
echo button::create(['type'=>'button','label'=>$text['button-export'],'icon'=>$settings->get('theme', 'button_icon_export'),'link'=>'device_download.php']);
}
if ($has_device_vendor_view) {
if (permission_exists('device_vendor_view')) {
echo button::create(['type'=>'button','label'=>$text['button-vendors'],'icon'=>'fax','link'=>'device_vendors.php']);
}
if ($has_device_profile_view) {
if (permission_exists('device_profile_view')) {
echo button::create(['type'=>'button','label'=>$text['button-profiles'],'icon'=>'clone','link'=>'device_profiles.php']);
}
$margin_left = $has_device_import || $has_device_export || $has_device_vendor_view || $has_device_profile_view ? "margin-left: 15px;" : null;
if ($has_device_add) {
$margin_left = permission_exists('device_import') || permission_exists('device_export') || permission_exists('device_vendor_view') || permission_exists('device_profile_view') ? "margin-left: 15px;" : null;
if (permission_exists('device_add') && (empty($_SESSION['limit']['devices']['numeric']) || ($total_devices < $_SESSION['limit']['devices']['numeric']))) {
echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$settings->get('theme', 'button_icon_add'),'id'=>'btn_add','style'=>$margin_left,'link'=>'device_edit.php']);
unset($margin_left);
}
if ($has_device_edit && $devices) {
if (permission_exists('device_edit') && $devices) {
echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$settings->get('theme', 'button_icon_toggle'),'id'=>'btn_toggle','name'=>'btn_toggle','style'=>'display: none; '.($margin_left ?? null),'onclick'=>"modal_open('modal-toggle','btn_toggle');"]);
unset($margin_left);
}
if ($has_device_delete && $devices) {
if (permission_exists('device_delete') && $devices) {
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$settings->get('theme', 'button_icon_delete'),'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none; '.($margin_left ?? null),'onclick'=>"modal_open('modal-delete','btn_delete');"]);
unset($margin_left);
}
echo "<form id='form_search' class='inline' method='get'>\n";
if ($has_device_all) {
if (permission_exists('device_all')) {
if (!empty($_GET['show']) && $_GET['show'] == 'all') {
echo " <input type='hidden' name='show' value='all'>";
}
@ -369,10 +351,10 @@
echo " <div style='clear: both;'></div>\n";
echo "</div>\n";
if ($has_device_edit && $devices) {
if (permission_exists('device_edit') && $devices) {
echo modal::create(['id'=>'modal-toggle','type'=>'toggle','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_toggle','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('toggle'); list_form_submit('form_list');"])]);
}
if ($has_device_delete && $devices) {
if (permission_exists('device_delete') && $devices) {
echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('delete'); list_form_submit('form_list');"])]);
}
@ -387,12 +369,12 @@
echo "<div class='card'>\n";
echo "<table class='list'>\n";
echo "<tr class='list-header'>\n";
if ($has_device_edit || $has_device_delete) {
if (permission_exists('device_edit') || permission_exists('device_delete')) {
echo " <th class='checkbox'>\n";
echo " <input type='checkbox' id='checkbox_all' name='checkbox_all' onclick='list_all_toggle(); checkbox_on_change(this);' ".(empty($devices) ? "style='visibility: hidden;'" : null).">\n";
echo " </th>\n";
}
if (!empty($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
if (!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
echo th_order_by('domain_name', $text['label-domain'], $order_by, $order, null, null, $param);
}
echo th_order_by('device_address', $text['label-device_address'], $order_by, $order, null, null, $param ?? null);
@ -406,7 +388,7 @@
echo th_order_by('device_enabled', $text['label-device_enabled'], $order_by, $order, null, "class='center'", $param ?? null);
echo th_order_by('device_provisioned_date', $text['label-device_status'], $order_by, $order, null, null, $param ?? null);
echo th_order_by('device_description', $text['label-device_description'], $order_by, $order, null, "class='hide-sm-dn'", $param ?? null);
if ($has_device_edit && $settings->get('theme', 'list_row_edit_button', 'false') === 'true') {
if (permission_exists('device_edit') && $settings->get('theme', 'list_row_edit_button', false)) {
echo " <td class='action-button'>&nbsp;</td>\n";
}
echo "</tr>\n";
@ -422,7 +404,7 @@
}
}
if ($has_device_edit) {
if (permission_exists('device_edit')) {
$list_row_url = "device_edit.php?id=".urlencode($row['device_uuid']);
}
@ -437,17 +419,17 @@
}
echo "<tr class='list-row' href='".$list_row_url."'>\n";
if ($has_device_edit || $has_device_delete) {
if (permission_exists('device_edit') || permission_exists('device_delete')) {
echo " <td class='checkbox'>\n";
echo " <input type='checkbox' name='devices[$x][checked]' id='checkbox_".$x."' value='true' onclick=\"checkbox_on_change(this); if (!this.checked) { document.getElementById('checkbox_all').checked = false; }\">\n";
echo " <input type='hidden' name='devices[$x][uuid]' value='".escape($row['device_uuid'])."' />\n";
echo " </td>\n";
}
if (!empty($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
if (!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
echo " <td>".escape($domains[$row['domain_uuid']])."</td>\n";
}
echo " <td class='no-wrap'>";
echo $has_device_edit ? "<a href='".$list_row_url."'>".escape(format_device_address($row['device_address']))."</a>" : escape(format_device_address($row['device_address']));
echo permission_exists('device_edit') ? "<a href='".$list_row_url."'>".escape(format_device_address($row['device_address']))."</a>" : escape(format_device_address($row['device_address']));
echo " </td>\n";
echo " <td>".escape($row['device_label'])."&nbsp;</td>\n";
if ($device_alternate) {
@ -463,7 +445,7 @@
echo " <td>".escape($row['device_vendor'])."&nbsp;</td>\n";
echo " <td>".escape($row['device_template'])."&nbsp;</td>\n";
echo " <td>".escape($device_profile_name)."&nbsp;</td>\n";
if ($has_device_edit) {
if (permission_exists('device_edit')) {
echo " <td class='no-link center'>";
echo button::create(['type'=>'submit','class'=>'link','label'=>$text['label-'.$row['device_enabled']],'title'=>$text['button-toggle'],'onclick'=>"list_self_check('checkbox_".$x."'); list_action_set('toggle'); list_form_submit('form_list')"]);
}
@ -474,7 +456,7 @@
echo " </td>\n";
echo " <td class='no-link'><a title='".escape($row['device_provisioned_agent'])."' href='javascript:void(0)'>".escape($row['provisioned_date_formatted'])." ".escape($row['provisioned_time_formatted'])."</a> &nbsp; ".escape($device_provisioned_method)." &nbsp; <a href='".escape($device_provisioned_method)."://".escape($row['device_provisioned_ip'])."' target='_blank'>".escape($row['device_provisioned_ip'])."</a>&nbsp;</td>\n";
echo " <td class='description overflow hide-sm-dn'>".escape($row['device_description'])."&nbsp;</td>\n";
if ($has_device_edit && $settings->get('theme', 'list_row_edit_button', false)) {
if (permission_exists('device_edit') && $settings->get('theme', 'list_row_edit_button', false)) {
echo " <td class='action-button'>";
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$settings->get('theme','button_icon_edit'),'link'=>$list_row_url]);
echo " </td>\n";

View File

@ -40,6 +40,18 @@
<condition field="${from_user_record}" expression="^local$" break="never">
<action application="set" data="record_session=true" inline="true"/>
</condition>
<condition field="${record_session}" expression="^true$"/>
<condition field="${call_direction}" expression="^inbound" break="never">
<action application="set" data="record_stereo_swap=true" inline="true"/>
</condition>
<condition field="${record_session}" expression="^true$"/>
<condition field="${call_direction}" expression="^outbound$" break="never">
<action application="set" data="record_stereo=true" inline="true"/>
</condition>
<condition field="${record_session}" expression="^true$"/>
<condition field="${call_direction}" expression="^local$" break="never">
<action application="set" data="record_stereo=true" inline="true"/>
</condition>
<condition field="${record_session}" expression="^true$">
<action application="set" data="record_path=${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}" inline="true" enabled="true"/>
<action application="set" data="record_name=${uuid}.${record_ext}" inline="true" enabled="true"/>
@ -50,9 +62,8 @@
<action application="bind_digit_action" data="local,*6,api:uuid_record,${uuid} unmask ${recordings_dir}/${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}/${uuid}.${record_ext},both,self" enabled="true"/>
<action application="set" data="record_append=true" inline="true" enabled="true"/>
<action application="set" data="record_in_progress=true" inline="true" enabled="true"/>
<action application="set" data="api_on_answer=uuid_record ${uuid} start ${record_path}/${record_name}" inline="false" enabled="false"/>
<action application="set" data="RECORD_ANSWER_REQ=true" enabled="true"/>
<action application="record_session" data="${record_path}/${record_name}" enabled="true"/>
<action application="set" data="api_on_answer=uuid_record ${uuid} start ${record_path}/${record_name}" inline="false" enabled="true"/>
<action application="set" data="record_answer_req=true" enabled="true"/>
<action application="record_session" data="${record_path}/${record_name}" enabled="false"/>
</condition>
</extension>

View File

@ -1,9 +1,9 @@
<extension name="operator" number="0" context="${domain_name}" continue="false" app_uuid="0e1cd2d7-9d84-4959-8b6c-0cb23de4de59" enabled="false" order="480">
<condition field="destination_number" expression="^0$|^operator$">
<action application="export" data="transfer_context={v_context}" enabled="true"/>
<action application="bind_meta_app" data="4 ab s execute_extension::att_xfer XML ${context}" enabled="false"/>
<action application="bind_meta_app" data="5 ab s execute_extension::xfer_vm XML ${context}" enabled="false"/>
<action application="set" data="domain_name={v_context}" enabled="true"/>
<action application="transfer" data="${operator} XML {v_context}" enabled="true"/>
<action application="export" data="transfer_context=${domain_name}" enabled="true"/>
<action application="bind_meta_app" data="4 ab s execute_extension::att_xfer XML ${domain_name}" enabled="false"/>
<action application="bind_meta_app" data="5 ab s execute_extension::xfer_vm XML ${domain_name}" enabled="false"/>
<action application="set" data="domain_name=${domain_name}" enabled="true"/>
<action application="transfer" data="${operator} XML ${domain_name}" enabled="true"/>
</condition>
</extension>

View File

@ -1,6 +1,6 @@
<extension name="operator-forward" number="*000" context="${domain_name}" continue="false" app_uuid="a90d3639-3b82-4905-a65d-85f58b6c4a19" enabled="true" order="485">
<condition field="destination_number" expression="^\*000$" >
<action application="set" data="dial_string=loopback/operator/${context}/XML" />
<action application="set" data="dial_string=loopback/operator/${domain_name}/XML" />
<action application="set" data="direction=both" />
<action application="set" data="extension=true" />
<action application="lua" data="dial_string.lua" />

View File

@ -141,7 +141,7 @@
$sql = "select * from v_email_queue ";
$sql .= "where (email_status = 'waiting' or email_status = 'trying') ";
$sql .= "and hostname = :hostname ";
$sql .= "order by domain_uuid asc ";
$sql .= "order by domain_uuid, email_date desc ";
$sql .= "limit :limit ";
$parameters['hostname'] = $hostname;
$parameters['limit'] = $email_queue_limit;

View File

@ -27,8 +27,8 @@ $text['title-emergency_logs']['zh-cn'] = "紧急日志";
$text['title-emergency_logs']['ja-jp'] = "緊急ログ";
$text['title-emergency_logs']['ko-kr'] = "비상 기록";
$text['title_description-emergency_logs']['en-us'] = "Track emergency calls includinng details of the time, date, and originating extension.";
$text['title_description-emergency_logs']['en-gb'] = "Track emergency calls includinng details of the time, date, and originating extension.";
$text['title_description-emergency_logs']['en-us'] = "Track emergency calls including details of the time, date, and originating extension.";
$text['title_description-emergency_logs']['en-gb'] = "Track emergency calls including details of the time, date, and originating extension.";
$text['title_description-emergency_logs']['ar-eg'] = "تتبع مكالمات الطوارئ بما في ذلك تفاصيل الوقت والتاريخ والامتداد الأصلي.";
$text['title_description-emergency_logs']['de-at'] = "Verfolgen Sie Notrufe mit Angaben zu Uhrzeit, Datum und Nebenstelle des Anrufers.";
$text['title_description-emergency_logs']['de-ch'] = "Verfolgen Sie Notrufe mit Angaben zu Uhrzeit, Datum und Nebenstelle des Anrufers.";

View File

@ -291,7 +291,9 @@
$sql .= ")";
$parameters['destination_number'] = $fax_number;
$destination_count = $database->select($sql, $parameters, 'column');
$local_destination = false;
if ($destination_count > 0) {
$local_destination = true;
$route_array[] = 'loopback/'.$fax_number.'/public';
}
@ -307,6 +309,12 @@
$common_variables .= "fax_header='" . escape_quote($fax_caller_id_name) . "',";
$common_variables .= "fax_file='" . escape_quote($fax_file) . "',";
//add the fax destination number variables
if ($local_destination) {
$common_variables .= "sip_to_user=".$fax_number.",";
$common_variables .= "sip_req_user=".$fax_number.",";
}
//prepare the fax command
if (empty($route_array)) {
$route_array = outbound_route_to_bridge($domain_uuid, $fax_prefix . $fax_number, $channel_variables);

View File

@ -873,6 +873,16 @@
unset($selected);
}
}
else if ($key == 'phrases') {
if (!empty($instance_value) && $instance_value == $row["value"]) {
$selected = "selected='selected'";
$playable = '';
$found = true;
}
else {
unset($selected);
}
}
else {
unset($selected);
}
@ -946,6 +956,16 @@
unset($selected);
}
}
else if ($key == 'phrases') {
if (!empty($instance_value) && $instance_value == $row["value"]) {
$selected = "selected='selected'";
$playable = '';
$found = true;
}
else {
unset($selected);
}
}
else {
unset($selected);
}

View File

@ -152,9 +152,9 @@
echo " <div style='clear: both;'></div>\n";
echo "</div>\n";
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'>\n";
echo "<table width='100%' style='table-layout: fixed;' cellpadding='0' cellspacing='0' border='0'>\n";
echo " <tr>\n";
echo " <td style='background-color: #1c1c1c; padding: 8px; text-align: left;'>";
echo " <td style='background-color: #1c1c1c; padding: 8px; text-align: left; overflow-wrap: break-word;'>";
if (permission_exists('log_view')) {
@ -348,4 +348,4 @@
fclose($file);
}
?>
?>

View File

@ -40,9 +40,33 @@
//initialize the database connection
$database = database::new();
//add the settings object
$settings = new settings(["domain_uuid" => $_SESSION['domain_uuid'], "user_uuid" => $_SESSION['user_uuid']]);
$speech_enabled = $settings->get('speech', 'enabled');
//get the session settings
$domain_uuid = $_SESSION['domain_uuid'];
$domain_name = $_SESSION['domain_name'];
$user_uuid = $_SESSION['user_uuid'];
$domains = $_SESSION['domains'];
//initialize the settings object
$settings = new settings(["domain_uuid" => $domain_uuid, "user_uuid" => $user_uuid]);
//get the settings
$switch_recordings = $settings->get('switch', 'recordings');
$time_zone = $settings->get('domain', 'time_zone', date_default_timezone_get());
$speech_enabled = $settings->get('speech', 'enabled', false);
$recording_storage_type = $settings->get('recordings','storage_type');
$recording_password = $settings->get('recordings','recording_password');
$domain_paging = $settings->get('domain','paging', 100);
$theme_button_icon_edit = $settings->get('theme','button_icon_edit');
$theme_button_icon_add = $settings->get('theme','button_icon_add');
$theme_button_icon_upload = $settings->get('theme','button_icon_upload');
$theme_button_icon_cancel = $settings->get('theme','button_icon_cancel');
$theme_button_icon_delete = $settings->get('theme','button_icon_delete');
$theme_button_icon_all = $settings->get('theme','button_icon_all');
$theme_button_icon_search = $settings->get('theme','button_icon_search');
$theme_list_row_edit_button = $settings->get('theme','list_row_edit_button');
$theme_button_icon_download = $settings->get('theme','button_icon_download');
$theme_button_icon_play = $settings->get('theme','button_icon_play');
$theme_button_icon_reset = $settings->get('theme','button_icon_reset');
//set additional variables
$action = $_REQUEST["action"] ?? '';
@ -53,7 +77,7 @@
if ($action == "download" && (permission_exists('recording_play') || permission_exists('recording_download'))) {
if ($_GET['type'] == "rec") {
//set the path for the directory
$path = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'];
$path = $switch_recordings."/".$domain_name;
//if from recordings, get recording details from db
$recording_uuid = $_GET['id']; //recordings
@ -67,7 +91,7 @@
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$recording_filename = $row['recording_filename'];
if (!empty($_SESSION['recordings']['storage_type']['text']) && $_SESSION['recordings']['storage_type']['text'] == 'base64' && !empty($row['recording_base64'])) {
if ($recording_storage_type == 'base64') {
$recording_decoded = base64_decode($row['recording_base64']);
file_put_contents($path.'/'.$recording_filename, $recording_decoded);
}
@ -130,12 +154,12 @@
$recording_filename = str_replace("'", "", $recording_filename);
//make sure the destination directory exists
if (!is_dir($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'])) {
mkdir($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'], 0770, false);
if (!is_dir($switch_recordings.'/'.$domain_name)) {
mkdir($switch_recordings.'/'.$domain_name, 0770, false);
}
//move the uploaded files
$result = move_uploaded_file($_FILES['file']['tmp_name'], $_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$recording_filename);
$result = move_uploaded_file($_FILES['file']['tmp_name'], $switch_recordings.'/'.$domain_name.'/'.$recording_filename);
//clear the destinations session array
if (isset($_SESSION['destinations']['array'])) {
@ -171,10 +195,10 @@
$array_recordings[$row['recording_uuid']] = $row['recording_filename'];
$array_base64_exists[$row['recording_uuid']] = ($row['recording_base64'] != '') ? true : false;
//if not base64, convert back to local files and remove base64 from db
if (!empty($_SESSION['recordings']['storage_type']['text']) && $_SESSION['recordings']['storage_type']['text'] != 'base64' && $row['recording_base64'] != '') {
if (!file_exists($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$row['recording_filename'])) {
if ($recording_storage_type != 'base64' && $row['recording_base64'] != '') {
if (!file_exists($switch_recordings.'/'.$domain_name.'/'.$row['recording_filename'])) {
$recording_decoded = base64_decode($row['recording_base64']);
file_put_contents($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$row['recording_filename'], $recording_decoded);
file_put_contents($switch_recordings.'/'.$domain_name.'/'.$row['recording_filename'], $recording_decoded);
//build array
$array['recordings'][0]['recording_uuid'] = $row['recording_uuid'];
$array['recordings'][0]['domain_uuid'] = $domain_uuid;
@ -196,10 +220,10 @@
unset($sql, $parameters, $result, $row);
//add recordings to the database
if (is_dir($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/')) {
if ($dh = opendir($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/')) {
if (is_dir($switch_recordings.'/'.$domain_name.'/')) {
if ($dh = opendir($switch_recordings.'/'.$domain_name.'/')) {
while (($recording_filename = readdir($dh)) !== false) {
if (filetype($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename) == "file") {
if (filetype($switch_recordings."/".$domain_name."/".$recording_filename) == "file") {
if (!is_array($array_recordings) || !in_array($recording_filename, $array_recordings)) {
//file not found in db, add it
@ -212,8 +236,8 @@
$array['recordings'][0]['recording_filename'] = $recording_filename;
$array['recordings'][0]['recording_name'] = $recording_name;
$array['recordings'][0]['recording_description'] = $recording_description;
if ($_SESSION['recordings']['storage_type']['text'] == 'base64') {
$recording_base64 = base64_encode(file_get_contents($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$recording_filename));
if ($recording_storage_type == 'base64') {
$recording_base64 = base64_encode(file_get_contents($switch_recordings.'/'.$domain_name.'/'.$recording_filename));
$array['recordings'][0]['recording_base64'] = $recording_base64;
}
//set temporary permissions
@ -229,10 +253,10 @@
}
else {
//file found in db, check if base64 present
if (!empty($_SESSION['recordings']['storage_type']['text']) && $_SESSION['recordings']['storage_type']['text'] == 'base64') {
if ($recording_storage_type == 'base64') {
$found_recording_uuid = array_search($recording_filename, $array_recordings);
if (!$array_base64_exists[$found_recording_uuid]) {
$recording_base64 = base64_encode(file_get_contents($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$recording_filename));
$recording_base64 = base64_encode(file_get_contents($switch_recordings.'/'.$domain_name.'/'.$recording_filename));
//build array
$array['recordings'][0]['domain_uuid'] = $domain_uuid;
$array['recordings'][0]['recording_uuid'] = $found_recording_uuid;
@ -296,7 +320,7 @@
$sql .= "where true ";
if ($show != "all" || !permission_exists('conference_center_all')) {
$sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['domain_uuid'] = $domain_uuid;
}
if (!empty($search)) {
$sql .= "and (";
@ -309,7 +333,7 @@
$num_rows = $database->select($sql, $parameters ?? null, 'column');
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = ($domain_paging != '') ? $domain_paging : 50;
$param = "&search=".urlencode($search);
if ($show == "all" && permission_exists('recording_all')) {
$param .= "&show=all";
@ -321,7 +345,7 @@
$offset = $rows_per_page * $page;
//get the file size
if (!empty($_SESSION['recordings']['storage_type']['text']) && $_SESSION['recordings']['storage_type']['text'] == 'base64') {
if ($recording_storage_type == 'base64') {
switch ($db_type) {
case 'pgsql': $sql_file_size = "length(decode(recording_base64,'base64')) as recording_size, "; break;
case 'mysql': $sql_file_size = "length(from_base64(recording_base64)) as recording_size, "; break;
@ -331,12 +355,14 @@
//get the recordings from the database
$sql = "select recording_uuid, domain_uuid, ";
if (!empty($sql_file_size)) { $sql .= $sql_file_size; }
$sql .= "to_char(timezone(:time_zone, update_date), 'DD Mon YYYY') as date_formatted, \n";
$sql .= "to_char(timezone(:time_zone, update_date), '".$sql_time_format."') as time_formatted, \n";
$sql .= "recording_name, recording_filename, recording_description ";
$sql .= "from v_recordings ";
$sql .= "where true ";
if ($show != "all" || !permission_exists('conference_center_all')) {
$sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['domain_uuid'] = $domain_uuid;
}
if (!empty($search)) {
$sql .= "and (";
@ -348,13 +374,14 @@
}
$sql .= order_by($order_by, $order, 'recording_name', 'asc');
$sql .= limit_offset($rows_per_page, $offset);
$parameters['time_zone'] = $time_zone;
$recordings = $database->select($sql, $parameters ?? null, 'all');
unset($sql, $parameters);
//get current recordings password
if (permission_exists('recording_password')) {
if (isset($_SESSION['recordings']['recording_password']['numeric'])) {
$recording_password = $_SESSION['recordings']['recording_password']['numeric'];
if (!empty($recording_password)) {
$recording_password = $recording_password;
}
else {
$sql = "
@ -373,7 +400,7 @@
dd.dialplan_detail_type = 'set' and
dd.dialplan_detail_data like 'pin_number=%' and
dd.dialplan_detail_enabled = 'true' ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['domain_uuid'] = $domain_uuid;
$recording_password = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
}
@ -402,7 +429,7 @@
echo " <div class='heading'><b>".$text['title-recordings']."</b><div class='count'>".number_format($num_rows)."</div></div>\n";
echo " <div class='actions'>\n";
if (permission_exists('recording_add') && $speech_enabled == 'true') {
echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$_SESSION['theme']['button_icon_add'],'id'=>'btn_add','link'=>'recording_edit.php']);
echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$theme_button_icon_add,'id'=>'btn_add','link'=>'recording_edit.php']);
}
if (permission_exists('recording_upload')) {
echo "<form id='form_upload' class='inline' method='post' enctype='multipart/form-data'>\n";
@ -410,17 +437,17 @@
echo "<input name='type' type='hidden' value='rec'>\n";
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
echo button::create(['type'=>'button','label'=>$text['button-upload'],'icon'=>$_SESSION['theme']['button_icon_add'],'id'=>'btn_upload','onclick'=>"$(this).fadeOut(250, function(){ $('span#form_upload').fadeIn(250); document.getElementById('ulfile').click(); });"]);
echo button::create(['type'=>'button','label'=>$text['button-upload'],'icon'=>$theme_button_icon_add,'id'=>'btn_upload','onclick'=>"$(this).fadeOut(250, function(){ $('span#form_upload').fadeIn(250); document.getElementById('ulfile').click(); });"]);
echo "<span id='form_upload' style='display: none;'>";
echo button::create(['label'=>$text['button-cancel'],'icon'=>$_SESSION['theme']['button_icon_cancel'],'type'=>'button','id'=>'btn_upload_cancel','onclick'=>"$('span#form_upload').fadeOut(250, function(){ document.getElementById('form_upload').reset(); $('#btn_upload').fadeIn(250) });"]);
echo button::create(['label'=>$text['button-cancel'],'icon'=>$theme_button_icon_cancel,'type'=>'button','id'=>'btn_upload_cancel','onclick'=>"$('span#form_upload').fadeOut(250, function(){ document.getElementById('form_upload').reset(); $('#btn_upload').fadeIn(250) });"]);
echo "<input type='text' class='txt' style='width: 100px; cursor: pointer;' id='filename' placeholder='Select...' onclick=\"document.getElementById('ulfile').click(); this.blur();\" onfocus='this.blur();'>";
echo "<input type='file' id='ulfile' name='file' style='display: none;' accept='.wav,.mp3,.ogg' onchange=\"document.getElementById('filename').value = this.files.item(0).name; check_file_type(this);\">";
echo button::create(['type'=>'submit','label'=>$text['button-upload'],'icon'=>$_SESSION['theme']['button_icon_upload']]);
echo button::create(['type'=>'submit','label'=>$text['button-upload'],'icon'=>$theme_button_icon_upload]);
echo "</span>\n";
echo "</form>";
}
if (permission_exists('recording_delete') && $recordings) {
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none;','onclick'=>"modal_open('modal-delete','btn_delete');"]);
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$theme_button_icon_delete,'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none;','onclick'=>"modal_open('modal-delete','btn_delete');"]);
}
echo "<form id='form_search' class='inline' method='get'>\n";
if (permission_exists('recording_all')) {
@ -428,12 +455,12 @@
echo " <input type='hidden' name='show' value='all'>";
}
else {
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?type=&show=all'.($search != '' ? "&search=".urlencode($search) : null)]);
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$theme_button_icon_all,'link'=>'?type=&show=all'.($search != '' ? "&search=".urlencode($search) : null)]);
}
}
echo "<input type='text' class='txt list-search' name='search' id='search' value=\"".escape($search)."\" placeholder=\"".$text['label-search']."\" onkeydown=''>";
echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search']);
//echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','link'=>'recordings.php','style'=>($search == '' ? 'display: none;' : null)]);
echo button::create(['label'=>$text['button-search'],'icon'=>$theme_button_icon_search,'type'=>'submit','id'=>'btn_search']);
//echo button::create(['label'=>$text['button-reset'],'icon'=>$theme_button_icon_reset,'type'=>'button','id'=>'btn_reset','link'=>'recordings.php','style'=>($search == '' ? 'display: none;' : null)]);
if ($paging_controls_mini != '') {
echo "<span style='margin-left: 15px;'>".$paging_controls_mini."</span>";
}
@ -473,7 +500,7 @@
}
echo th_order_by('recording_name', $text['label-recording_name'], $order_by, $order);
$col_count++;
if (!empty($_SESSION['recordings']['storage_type']['text']) && $_SESSION['recordings']['storage_type']['text'] != 'base64') {
if ($recording_storage_type != 'base64') {
echo th_order_by('recording_filename', $text['label-file_name'], $order_by, $order, null, "class='hide-md-dn'");
$col_count++;
}
@ -481,7 +508,7 @@
echo "<th class='center shrink'>".$text['label-tools']."</th>\n";
$col_count++;
}
echo "<th class='center'>".(!empty($_SESSION['recordings']['storage_type']['text']) && $_SESSION['recordings']['storage_type']['text'] == 'base64' ? $text['label-size'] : $text['label-file_size'])."</th>\n";
echo "<th class='center'>".($recording_storage_type == 'base64' ? $text['label-size'] : $text['label-file_size'])."</th>\n";
$col_count++;
echo "<th class='center hide-md-dn'>".$text['label-date']."</th>\n";
@ -489,7 +516,7 @@
echo th_order_by('recording_description', $text['label-description'], $order_by, $order, null, "class='hide-sm-dn pct-25'");
$col_count++;
if (permission_exists('recording_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
if (permission_exists('recording_edit') && $theme_list_row_edit_button == true) {
echo " <td class='action-button'>&nbsp;</td>\n";
}
echo "</tr>\n";
@ -513,8 +540,8 @@
echo " </td>\n";
}
if ($show == "all" && permission_exists('recording_all')) {
if (!empty($_SESSION['domains'][$row['domain_uuid']]['domain_name'])) {
$domain = $_SESSION['domains'][$row['domain_uuid']]['domain_name'];
if (!empty($domains[$row['domain_uuid']]['domain_name'])) {
$domain = $domains[$row['domain_uuid']]['domain_name'];
}
else {
$domain = $text['label-global'];
@ -529,7 +556,7 @@
echo escape($row['recording_name']);
}
echo " </td>\n";
if (!empty($_SESSION['recordings']['storage_type']['text']) && $_SESSION['recordings']['storage_type']['text'] != 'base64') {
if ($recording_storage_type != 'base64') {
echo " <td class='hide-md-dn'>".str_replace('_', '_&#8203;', escape($row['recording_filename']))."</td>\n";
}
if (permission_exists('recording_play') || permission_exists('recording_download')) {
@ -544,19 +571,19 @@
case "ogg" : $recording_type = "audio/ogg"; break;
}
echo "<audio id='recording_audio_".escape($row['recording_uuid'])."' style='display: none;' preload='none' ontimeupdate=\"update_progress('".escape($row['recording_uuid'])."')\" onended=\"recording_reset('".escape($row['recording_uuid'])."');\" src=\"".PROJECT_PATH."/app/recordings/recordings.php?action=download&type=rec&id=".urlencode($row['recording_uuid'])."\" type='".$recording_type."'></audio>";
echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$_SESSION['theme']['button_icon_play'],'id'=>'recording_button_'.escape($row['recording_uuid']),'onclick'=>"recording_play('".escape($row['recording_uuid'])."')"]);
echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$theme_button_icon_play,'id'=>'recording_button_'.escape($row['recording_uuid']),'onclick'=>"recording_play('".escape($row['recording_uuid'])."')"]);
}
if (permission_exists('recording_download')) {
echo button::create(['type'=>'button','title'=>$text['label-download'],'icon'=>$_SESSION['theme']['button_icon_download'],'link'=>"recordings.php?action=download&type=rec&t=bin&id=".urlencode($row['recording_uuid'])]);
echo button::create(['type'=>'button','title'=>$text['label-download'],'icon'=>$theme_button_icon_download,'link'=>"recordings.php?action=download&type=rec&t=bin&id=".urlencode($row['recording_uuid'])]);
}
echo " </td>\n";
}
if (!empty($_SESSION['recordings']['storage_type']['text']) && $_SESSION['recordings']['storage_type']['text'] == 'base64') {
if ($recording_storage_type == 'base64') {
$file_size = byte_convert($row['recording_size']);
echo " <td class='center no-wrap'>".$file_size."</td>\n";
}
else {
$file_name = $_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domains'][$row['domain_uuid']]['domain_name'].'/'.$row['recording_filename'];
$file_name = $switch_recordings.'/'.$domains[$row['domain_uuid']]['domain_name'].'/'.$row['recording_filename'];
if (file_exists($file_name)) {
$file_size = filesize($file_name);
$file_size = byte_convert($file_size);
@ -566,18 +593,17 @@
unset($file_size, $file_date);
}
echo " <td class='center no-wrap'>".($file_size ?? '')."</td>\n";
echo " <td class='center hide-md-dn'>".($file_date ?? '')."</td>\n";
}
echo " <td class='center hide-md-dn'>".($row['date_formatted'] ?? '')." ".($row['time_formatted'] ?? '')."</td>\n";
echo " <td class='description overflow hide-sm-dn'>".escape($row['recording_description'])."&nbsp;</td>\n";
if (permission_exists('recording_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
if (permission_exists('recording_edit') && $theme_list_row_edit_button == true) {
echo " <td class='action-button'>";
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$theme_button_icon_edit,'link'=>$list_row_url]);
echo " </td>\n";
}
echo "</tr>\n";
$x++;
}
unset($recordings);
}
echo "</table>\n";

View File

@ -36,18 +36,47 @@ if (!class_exists('registrations')) {
private $permission_prefix;
private $list_page;
public $show;
private $domain_name;
/**
* Set in the constructor. Must be a database object and cannot be null.
* @var database Database Object
*/
private $database;
/**
* called when the object is created
*/
public function __construct() {
public function __construct($setting_array = []) {
//open a database connection
if (empty($setting_array['database'])) {
$this->database = database::new();
}
else {
$this->database = $setting_array['database'];
}
//trap passing a PDO object instead of the required database object
if (!($this->database instanceof database)) {
//should never happen but will trap it here just-in-case
throw new \InvalidArgumentException("Database object passed in settings class constructor is not a valid database object");
}
//assign private variables
$this->app_name = 'registrations';
$this->app_uuid = '5d9e7cd7-629e-3553-4cf5-f26e39fefa39';
$this->permission_prefix = 'registration_';
$this->list_page = 'registrations.php';
$this->show = 'local';
$this->app_name = 'registrations';
$this->app_uuid = '5d9e7cd7-629e-3553-4cf5-f26e39fefa39';
$this->permission_prefix = 'registration_';
$this->list_page = 'registrations.php';
$this->show = 'local';
//get the domain_name
if (empty($setting_array['domain_name'])) {
$this->domain_name = $_SESSION['domain_name'];
}
else {
$this->domain_name = $setting_array['domain_name'];
}
}
@ -70,8 +99,7 @@ if (!class_exists('registrations')) {
$parameters['sip_profile_name'] = $profile;
}
$sql .= "and sip_profile_enabled = 'true' ";
$database = new database;
$sip_profiles = $database->select($sql, $parameters ?? null, 'all');
$sip_profiles = $this->database->select($sql, $parameters ?? null, 'all');
if (!empty($sip_profiles) && @sizeof($sip_profiles) != 0) {
foreach ($sip_profiles as $field) {
@ -180,8 +208,8 @@ if (!class_exists('registrations')) {
//remove unrelated domains
if (!permission_exists('registration_all') || $this->show != 'all') {
if ($registrations[$id]['sip-auth-realm'] == $_SESSION['domain_name']) {}
else if ($user_array[1] == $_SESSION['domain_name']) {}
if ($registrations[$id]['sip-auth-realm'] == $this->domain_name) {}
else if ($user_array[1] == $this->domain_name) {}
else {
unset($registrations[$id]);
}
@ -269,8 +297,7 @@ if (!class_exists('registrations')) {
//retrieve sip profiles list
$sql = "select sip_profile_name as name from v_sip_profiles ";
$database = new database;
$sip_profiles = $database->select($sql, null, 'all');
$sip_profiles = $this->database->select($sql, null, 'all');
unset($sql);
//create the event socket connection

View File

@ -12,10 +12,7 @@
$text = $language->get($_SESSION['domain']['language']['code'], dirname($dashboard_url));
//get the dashboard label
$dashboard_label = $text['title-'.$dashboard_key];
if (empty($dashboard_label)) {
$dashboard_label = $dashboard_name;
}
$dashboard_label = $text['title-'.$dashboard_key] ?? $dashboard_name;
//prepare variables
$dashboard_target = ($dashboard_target == 'new') ? '_blank' : '_self';
@ -25,9 +22,7 @@
}
//channel count
if ($esl == null) {
$esl = event_socket::create();
}
$esl = event_socket::create();
//registration count
if ($esl->is_connected() && file_exists($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH."/app/registrations/")) {
@ -41,6 +36,7 @@
//get the total enabled extensions
$sql = "select count(*) as count from v_extensions ";
$sql .= "where enabled = 'true' ";
$parameters = null;
if (!permission_exists("registration_all")) {
$sql .= "and domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];

View File

@ -74,6 +74,10 @@
$total_ring_groups = $database->select($sql, $parameters ?? null, 'column');
unset($sql, $parameters);
//get the domain_uuid
$domain_uuid = $_SESSION['domain_uuid'];
$domain_name = $_SESSION['domain_name'];
//action add or update
if (!empty($_REQUEST["id"]) || !empty($_REQUEST["ring_group_uuid"])) {
$action = "update";
@ -86,19 +90,19 @@
//get the domain_uuid
if (is_uuid($ring_group_uuid) && permission_exists('ring_group_all')) {
$sql = "select domain_uuid from v_ring_groups ";
$sql = "select r.domain_uuid, d.domain_name ";
$sql .= "from v_ring_groups as r, v_domains as d ";
$sql .= "where ring_group_uuid = :ring_group_uuid ";
$sql .= "and r.domain_uuid = d.domain_uuid ";
$parameters['ring_group_uuid'] = $ring_group_uuid;
$domain_uuid = $database->select($sql, $parameters, 'column');
$row = $database->select($sql, $parameters, 'row');
$domain_uuid = $row['domain_uuid'];
$domain_name = $row['domain_name'];
unset($sql, $parameters);
}
else {
$domain_uuid = $_SESSION['domain_uuid'];
}
}
else {
$action = "add";
$domain_uuid = $_SESSION['domain_uuid'];
}
//delete the user from the ring group
@ -135,15 +139,15 @@
}
//get total ring group count from the database, check limit, if defined
if ($action == 'add' && $_SESSION['limit']['ring_groups']['numeric'] ?? '') {
if ($action == 'add' && $settings->get('limit', 'ring_groups', '') ?? '') {
$sql = "select count(*) from v_ring_groups ";
$sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $domain_uuid;
$total_ring_groups = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
if (is_numeric($_SESSION['limit']['ring_groups']['numeric']) && $total_ring_groups >= $_SESSION['limit']['ring_groups']['numeric']) {
message::add($text['message-maximum_ring_groups'].' '.$_SESSION['limit']['ring_groups']['numeric'], 'negative');
if (is_numeric($settings->get('limit', 'ring_groups', '')) && $total_ring_groups >= $settings->get('limit', 'ring_groups', '')) {
message::add($text['message-maximum_ring_groups'].' '.$settings->get('limit', 'ring_groups', ''), 'negative');
header('Location: ring_groups.php');
exit;
}
@ -217,7 +221,7 @@
$ring_group_context = $_POST["ring_group_context"];
}
else if ($action == 'add') {
$ring_group_context = $_SESSION['domain_name'];
$ring_group_context = $domain_name;
}
//if the user doesn't have the correct permission then
@ -413,7 +417,7 @@
else {
$ring_group_destination_uuid = uuid();
}
if (!empty($row['destination_number']) && $_SESSION['ring_group']['destination_range_enabled']['boolean']) {
if (!empty($row['destination_number']) && $settings->get('ring_group', 'destination_range_enabled', false)) {
// check the range
$output_array = array();
preg_match('/[0-9]{1,}-[0-9]{1,}/', $row['destination_number'], $output_array);
@ -586,8 +590,8 @@
}
//set the defaults
$destination_delay_max = $_SESSION['ring_group']['destination_delay_max']['numeric'];
$destination_timeout_max = $_SESSION['ring_group']['destination_timeout_max']['numeric'];
$destination_delay_max = $settings->get('ring_group', 'destination_delay_max', '');
$destination_timeout_max = $settings->get('ring_group', 'destination_timeout_max', '');;
if (empty($ring_group_call_timeout)) {
$ring_group_call_timeout = '30';
}
@ -611,12 +615,12 @@
//add an empty row to the options array
if (!isset($ring_group_destinations) || count($ring_group_destinations) == 0) {
$rows = $_SESSION['ring_group']['destination_add_rows']['numeric'];
$rows = $settings->get('ring_group', 'destination_add_rows', 5);
$id = 0;
$show_destination_delete = false;
}
if (isset($ring_group_destinations) && count($ring_group_destinations) > 0) {
$rows = $_SESSION['ring_group']['destination_edit_rows']['numeric'];
$rows = $settings->get('ring_group', 'destination_edit_rows', 1);
$id = count($ring_group_destinations)+1;
$show_destination_delete = true;
}
@ -657,7 +661,7 @@
//set the default ring group context
if (empty($ring_group_context)) {
$ring_group_context = $_SESSION['domain_name'];
$ring_group_context = $domain_name;
}
//get the ring backs
@ -752,7 +756,7 @@
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','link'=>'ring_groups.php']);
if ($action == 'update') {
$button_margin = 'margin-left: 15px;';
if (permission_exists('ring_group_add') && (!isset($_SESSION['limit']['ring_groups']['numeric']) || ($total_ring_groups < $_SESSION['limit']['ring_groups']['numeric']))) {
if (permission_exists('ring_group_add') && (empty($settings->get('limit', 'ring_groups', '')) || ($total_ring_groups < $settings->get('limit', 'ring_groups', '')))) {
echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'name'=>'btn_copy','style'=>$button_margin,'onclick'=>"modal_open('modal-copy','btn_copy');"]);
unset($button_margin);
}
@ -767,7 +771,7 @@
echo "</div>\n";
if ($action == "update") {
if (permission_exists('ring_group_add') && (!isset($_SESSION['limit']['ring_groups']['numeric']) || ($total_ring_groups < $_SESSION['limit']['ring_groups']['numeric']))) {
if (permission_exists('ring_group_add') && (empty($settings->get('limit', 'ring_groups', '')) || ($total_ring_groups < $settings->get('limit', 'ring_groups', '')))) {
echo modal::create(['id'=>'modal-copy','type'=>'copy','actions'=>button::create(['type'=>'submit','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_copy','style'=>'float: right; margin-left: 15px;','collapse'=>'never','name'=>'action','value'=>'copy','onclick'=>"modal_close();"])]);
}
if (permission_exists('ring_group_delete') || permission_exists('ring_group_destination_delete')) {
@ -797,7 +801,7 @@
echo " ".$text['label-extension']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='ring_group_extension' maxlength='255' value=\"".escape($ring_group_extension)."\" required='required' placeholder=\"".($_SESSION['ring_group']['extension_range']['text'] ?? '')."\">\n";
echo " <input class='formfld' type='text' name='ring_group_extension' maxlength='255' value=\"".escape($ring_group_extension)."\" required='required' placeholder=\"".($settings->get('ring_group', 'extension_range', '') ?? '')."\">\n";
echo "<br />\n";
echo $text['description-extension']."\n";
echo "</td>\n";
@ -824,8 +828,8 @@
if ($key == 'recordings') {
if (
!empty($instance_value) &&
($instance_value == $row["value"] || $instance_value == $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.$row["value"]) &&
file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.pathinfo($row["value"], PATHINFO_BASENAME))
($instance_value == $row["value"] || $instance_value == $settings->get('switch', 'recordings', '')."/".$domain_name.'/'.$row["value"]) &&
file_exists($settings->get('switch', 'recordings', '')."/".$domain_name.'/'.pathinfo($row["value"], PATHINFO_BASENAME))
) {
$selected = "selected='selected'";
$playable = '../recordings/recordings.php?action=download&type=rec&filename='.pathinfo($row["value"], PATHINFO_BASENAME);
@ -845,6 +849,16 @@
unset($selected);
}
}
else if ($key == 'phrases') {
if (!empty($instance_value) && $instance_value == $row["value"]) {
$selected = "selected='selected'";
$playable = '';
$found = true;
}
else {
unset($selected);
}
}
else {
unset($selected);
}
@ -930,7 +944,7 @@
echo " <tr>\n";
echo " <td class='formfld'>\n";
if (!isset($row['ring_group_destination_uuid'])) { // new record
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
if (substr($settings->get('theme', 'input_toggle_style', ''), 0, 6) == 'switch') {
$onkeyup = "onkeyup=\"document.getElementById('ring_group_destinations_".$x."_destination_enabled').checked = (this.value != '' ? true : false);\""; // switch
}
else {
@ -982,7 +996,7 @@
echo " </td>\n";
echo " <td class='formfld'>\n";
// switch
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
if (substr($settings->get('theme', 'input_toggle_style', ''), 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='ring_group_destinations_".$x."_destination_enabled' name='ring_group_destinations[".$x."][destination_enabled]' value='true' ".(!empty($row['destination_enabled']) && $row['destination_enabled'] == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span>\n";
@ -1293,7 +1307,7 @@
echo " ".$text['label-enabled']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
if (substr($settings->get('theme', 'input_toggle_style', ''), 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='ring_group_enabled' name='ring_group_enabled' value='true' ".($ring_group_enabled == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span>\n";

View File

@ -100,7 +100,7 @@ if (!class_exists('presence')) {
echo "active: false\n";
}
//show active the presence
$presence = new permissions;
$presence = new presence;
$array = $presence->show();
*/

View File

@ -97,12 +97,12 @@
$voicemail_sms_to = $_POST["voicemail_sms_to"] ?? null;
$voicemail_transcription_enabled = $_POST["voicemail_transcription_enabled"] ?? null;
$voicemail_file = $_POST["voicemail_file"];
$voicemail_local_after_email = $_POST["voicemail_local_after_email"];
$voicemail_local_after_email = $_POST["voicemail_local_after_email"] ?? null;
$voicemail_destination = $_POST["voicemail_destination"];
$voicemail_local_after_forward = $_POST["voicemail_local_after_forward"];
$voicemail_local_after_forward = $_POST["voicemail_local_after_forward"] ?? null;
$voicemail_enabled = $_POST["voicemail_enabled"] ?? 'false';
$voicemail_description = $_POST["voicemail_description"];
$voicemail_tutorial = $_POST["voicemail_tutorial"];
$voicemail_tutorial = $_POST["voicemail_tutorial"] ?? null;
$voicemail_recording_instructions = $_POST["voicemail_recording_instructions"] ?? null;
$voicemail_recording_options = $_POST["voicemail_recording_options"] ?? null;
$voicemail_options_delete = $_POST["voicemail_options_delete"] ?? null;
@ -153,7 +153,7 @@
$voicemail_uuid = uuid();
//if adding a mailbox and don't have the transcription permission, set the default transcribe behavior
if (!permission_exists('voicemail_transcription_enabled') && isset($_SESSION['voicemail']['transcription_enabled_default']['boolean'])) {
$voicemail_transcription_enabled = $_SESSION['voicemail']['transcription_enabled_default']['boolean'];
$voicemail_transcription_enabled = $_SESSION['voicemail']['transcription_enabled_default']['boolean'] ?? 'false';
}
}
@ -167,30 +167,30 @@
$array['voicemails'][0]['voicemail_mail_to'] = $voicemail_mail_to;
$array['voicemails'][0]['voicemail_sms_to'] = $voicemail_sms_to;
$array['voicemails'][0]['voicemail_transcription_enabled'] = $voicemail_transcription_enabled;
$array['voicemails'][0]['voicemail_tutorial'] = $voicemail_tutorial;
$array['voicemails'][0]['voicemail_tutorial'] = $voicemail_tutorial ?? 'false';
if (permission_exists('voicemail_recording_instructions')) {
$array['voicemails'][0]['voicemail_recording_instructions'] = $voicemail_recording_instructions;
$array['voicemails'][0]['voicemail_recording_instructions'] = $voicemail_recording_instructions ?? 'false';
}
if (permission_exists('voicemail_recording_options')) {
$array['voicemails'][0]['voicemail_recording_options'] = $voicemail_recording_options;
$array['voicemails'][0]['voicemail_recording_options'] = $voicemail_recording_options ?? 'false';
}
if (permission_exists('voicemail_file')) {
$array['voicemails'][0]['voicemail_file'] = $voicemail_file;
}
if (permission_exists('voicemail_local_after_email') && !empty($voicemail_mail_to)) {
$array['voicemails'][0]['voicemail_local_after_email'] = $voicemail_local_after_email;
$array['voicemails'][0]['voicemail_local_after_email'] = $voicemail_local_after_email ?? 'false';
}
else if (permission_exists('voicemail_local_after_forward')) {
$array['voicemails'][0]['voicemail_local_after_email'] = $voicemail_local_after_forward;
$array['voicemails'][0]['voicemail_local_after_email'] = $voicemail_local_after_forward ?? 'false';
}
else {
$array['voicemails'][0]['voicemail_local_after_email'] = 'true';
}
if (permission_exists('voicemail_local_after_forward')) {
$array['voicemails'][0]['voicemail_local_after_forward'] = $voicemail_local_after_forward;
$array['voicemails'][0]['voicemail_local_after_forward'] = $voicemail_local_after_forward ?? 'false';
}
else if (permission_exists('voicemail_local_after_email') && !empty($voicemail_mail_to)) {
$array['voicemails'][0]['voicemail_local_after_forward'] = $voicemail_local_after_email;
$array['voicemails'][0]['voicemail_local_after_forward'] = $voicemail_local_after_email ?? 'false';
}
else {
$array['voicemails'][0]['voicemail_local_after_forward'] = 'true';
@ -583,10 +583,18 @@
echo " ".$text['label-voicemail_tutorial']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='voicemail_tutorial' id='voicemail_tutorial'>\n";
echo " <option value='true' ".(($voicemail_tutorial == "true") ? "selected='selected'" : null).">".$text['label-true']."</option>\n";
echo " <option value='false' ".(($voicemail_tutorial == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='voicemail_tutorial' name='voicemail_tutorial' value='true' ".($voicemail_tutorial == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span> \n";
echo " </label>\n";
}
else {
echo " <select class='formfld' id='voicemail_tutorial' name='voicemail_tutorial'>\n";
echo " <option value='true'>".$text['option-true']."</option>\n";
echo " <option value='false' ".($voicemail_tutorial == 'false' ? "selected='selected'" : null).">".$text['option-false']."</option>\n";
echo " </select>\n";
}
echo "<br />\n";
echo $text['description-voicemail_tutorial']."\n";
echo "</td>\n";
@ -683,10 +691,18 @@
echo " ".$text['label-recording_instructions']."\n";
echo "</td>\n";
echo "<td width='70%' class='vtable' align='left'>\n";
echo " <select class='formfld' name='voicemail_recording_instructions' id='voicemail_recording_instructions'>\n";
echo " <option value='true'>".$text['label-true']."</option>\n";
echo " <option value='false' ".(!empty($voicemail_recording_instructions) && $voicemail_recording_instructions == "false" ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='voicemail_recording_instructions' name='voicemail_recording_instructions' value='true' ".($voicemail_recording_instructions == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span> \n";
echo " </label>\n";
}
else {
echo " <select class='formfld' id='voicemail_recording_instructions' name='voicemail_recording_instructions'>\n";
echo " <option value='true'>".$text['option-true']."</option>\n";
echo " <option value='false' ".(!empty($voicemail_recording_instructions) && $voicemail_recording_instructions == 'false' ? "selected='selected'" : null).">".$text['option-false']."</option>\n";
echo " </select>\n";
}
echo "<br />\n";
echo $text['description-recording_instructions']."\n";
echo "</td>\n";
@ -699,10 +715,18 @@
echo " ".$text['label-recording_options']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='voicemail_recording_options' id='voicemail_recording_options'>\n";
echo " <option value='true'>".$text['label-true']."</option>\n";
echo " <option value='false' ".(!empty($voicemail_recording_options) && $voicemail_recording_options == "false" ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='voicemail_recording_options' name='voicemail_recording_options' value='true' ".($voicemail_recording_options == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span> \n";
echo " </label>\n";
}
else {
echo " <select class='formfld' id='voicemail_recording_options' name='voicemail_recording_options'>\n";
echo " <option value='true'>".$text['option-true']."</option>\n";
echo " <option value='false' ".(!empty($voicemail_recording_options) && $voicemail_recording_options == 'false' ? "selected='selected'" : null).">".$text['option-false']."</option>\n";
echo " </select>\n";
}
echo "<br />\n";
echo $text['description-recording_options']."\n";
echo "</td>\n";
@ -820,10 +844,18 @@
echo " ".$text['label-voicemail_transcription_enabled']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='voicemail_transcription_enabled' id='voicemail_transcription_enabled'>\n";
echo " <option value='true' ".(($voicemail_transcription_enabled == "true") ? "selected='selected'" : null).">".$text['label-true']."</option>\n";
echo " <option value='false' ".((empty($voicemail_transcription_enabled) || $voicemail_transcription_enabled == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='voicemail_transcription_enabled' name='voicemail_transcription_enabled' value='true' ".($voicemail_transcription_enabled == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span> \n";
echo " </label>\n";
}
else {
echo " <select class='formfld' id='voicemail_transcription_enabled' name='voicemail_transcription_enabled'>\n";
echo " <option value='true'>".$text['option-true']."</option>\n";
echo " <option value='false' ".(empty($voicemail_transcription_enabled) || $voicemail_transcription_enabled == 'false' ? "selected='selected'" : null).">".$text['option-false']."</option>\n";
echo " </select>\n";
}
echo "<br />\n";
echo $text['description-voicemail_transcription_enabled']."\n";
echo "</td>\n";
@ -856,10 +888,18 @@
echo " ".$text['label-voicemail_local_after_email']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='voicemail_local_after_email' id='voicemail_local_after_email' onchange=\"if (this.selectedIndex == 1) { document.getElementById('voicemail_file').selectedIndex = 2; }\">\n";
echo " <option value='true' ".(($voicemail_local_after_email == "true") ? "selected='selected'" : null).">".$text['label-true']."</option>\n";
echo " <option value='false' ".(($voicemail_local_after_email == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='voicemail_local_after_email' name='voicemail_local_after_email' value='true' ".($voicemail_local_after_email == 'true' ? "checked='checked'" : null)." onchange=\"if (!this.checked) { document.getElementById('voicemail_file').selectedIndex = 2; }\">\n";
echo " <span class='slider'></span> \n";
echo " </label>\n";
}
else {
echo " <select class='formfld' id='voicemail_local_after_email' name='voicemail_local_after_email' onchange=\"if (this.selectedIndex == 1) { document.getElementById('voicemail_file').selectedIndex = 2; }\">\n";
echo " <option value='true'>".$text['option-true']."</option>\n";
echo " <option value='false' ".($voicemail_local_after_email == 'false' ? "selected='selected'" : null).">".$text['option-false']."</option>\n";
echo " </select>\n";
}
echo "<br />\n";
echo $text['description-voicemail_local_after_email']."\n";
echo "</td>\n";
@ -927,10 +967,18 @@
echo " ".$text['label-voicemail_local_after_forward']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='voicemail_local_after_forward'>\n";
echo " <option value='true' ".(($voicemail_local_after_forward == "true") ? "selected='selected'" : null).">".$text['label-true']."</option>\n";
echo " <option value='false' ".(($voicemail_local_after_forward == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
echo " <label class='switch'>\n";
echo " <input type='checkbox' id='voicemail_local_after_forward' name='voicemail_local_after_forward' value='true' ".($voicemail_local_after_forward == 'true' ? "checked='checked'" : null).">\n";
echo " <span class='slider'></span> \n";
echo " </label>\n";
}
else {
echo " <select class='formfld' id='voicemail_local_after_forward' name='voicemail_local_after_forward'>\n";
echo " <option value='true'>".$text['option-true']."</option>\n";
echo " <option value='false' ".($voicemail_local_after_forward == 'false' ? "selected='selected'" : null).">".$text['option-false']."</option>\n";
echo " </select>\n";
}
echo "<br />\n";
echo $text['description-voicemail_local_after_forward']."\n";
echo "</td>\n";

View File

@ -52,11 +52,9 @@
$settings = new settings(['database' => $database, 'domain_uuid' => $_SESSION['domain_uuid'] ?? '', 'user_uuid' => $_SESSION['user_uuid'] ?? '']);
//get the http post data
if (!empty($_POST['voicemails'])) {
$action = $_POST['action'];
$search = $_POST['search'];
$voicemails = $_POST['voicemails'];
}
$action = $_POST['action'] ?? '';
$search = $_POST['search'] ?? '';
$voicemails = $_POST['voicemails'] ?? [];
//process the http post data by action
if (!empty($action) && !empty($voicemails)) {
@ -101,13 +99,13 @@
//get order and order by
$order_by = $_GET["order_by"] ?? 'voicemail_id';
$order = $_GET["order"] ?? 'asc';
$sort = $order_by == 'voicemail_id' ? 'natural' : null;
$sort = $order_by == 'voicemail_id' ? 'natural' : '';
//set additional variables
$show = $_GET["show"] ?? '';
//set from session variables
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
$list_row_edit_button = $settings->get('theme', 'list_row_edit_button', false);
//add the search string
$search = strtolower($_GET["search"] ?? '');
@ -119,7 +117,6 @@
$sql_search .= " or lower(voicemail_enabled) like :search ";
$sql_search .= " or lower(voicemail_description) like :search ";
$sql_search .= ") ";
$parameters['search'] = '%'.$search.'%';
}
//prepare to page the results
@ -146,11 +143,14 @@
$sql .= "and voicemail_uuid is null ";
}
}
$sql .= $sql_search ?? '';
if (!empty($sql_search)) {
$sql .= $sql_search;
$parameters['search'] = '%'.$search.'%';
}
$num_rows = $database->select($sql, $parameters, 'column');
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = $settings->get('domain', 'paging', 50);
$param = $search ? "&search=".urlencode($search) : null;
if ($show == "all" && permission_exists('voicemail_all')) {
$param .= "&show=all";
@ -218,19 +218,19 @@
echo " <div class='heading'><b>".$text['title-voicemails']."</b><div class='count'>".number_format($num_rows)."</div></div>\n";
echo " <div class='actions'>\n";
if (permission_exists('voicemail_import')) {
echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$_SESSION['theme']['button_icon_import'],'style'=>'','link'=>'voicemail_imports.php']);
echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$settings->get('theme', 'button_icon_import'),'style'=>'','link'=>'voicemail_imports.php']);
}
if (permission_exists('voicemail_export')) {
echo button::create(['type'=>'button','label'=>$text['button-export'],'icon'=>$_SESSION['theme']['button_icon_export'],'style'=>'margin-right: 15px;','link'=>'voicemail_export.php']);
echo button::create(['type'=>'button','label'=>$text['button-export'],'icon'=>$settings->get('theme', 'button_icon_export'),'style'=>'margin-right: 15px;','link'=>'voicemail_export.php']);
}
if (permission_exists('voicemail_add')) {
echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$_SESSION['theme']['button_icon_add'],'id'=>'btn_add','link'=>'voicemail_edit.php']);
echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$settings->get('theme', 'button_icon_add'),'id'=>'btn_add','link'=>'voicemail_edit.php']);
}
if (permission_exists('voicemail_edit') && $voicemails) {
echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$_SESSION['theme']['button_icon_toggle'],'id'=>'btn_toggle','name'=>'btn_toggle','style'=>'display: none;','onclick'=>"modal_open('modal-toggle','btn_toggle');"]);
echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$settings->get('theme', 'button_icon_toggle'),'id'=>'btn_toggle','name'=>'btn_toggle','style'=>'display: none;','onclick'=>"modal_open('modal-toggle','btn_toggle');"]);
}
if (permission_exists('voicemail_delete') && $voicemails) {
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none;','onclick'=>"modal_open('modal-delete','btn_delete');"]);
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$settings->get('theme', 'button_icon_delete'),'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none;','onclick'=>"modal_open('modal-delete','btn_delete');"]);
}
echo "<form id='form_search' class='inline' method='get'>\n";
if (permission_exists('voicemail_all')) {
@ -238,12 +238,12 @@
echo " <input type='hidden' name='show' value='all'>";
}
else {
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?type=&show=all'.($search != '' ? "&search=".urlencode($search) : null)]);
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$settings->get('theme', 'button_icon_all'),'link'=>'?type=&show=all'.($search != '' ? "&search=".urlencode($search) : null)]);
}
}
echo "<input type='text' class='txt list-search' name='search' id='search' value=\"".escape($search)."\" placeholder=\"".$text['label-search']."\" onkeydown=''>";
echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search']);
//echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','link'=>'voicemails.php','style'=>($search == '' ? 'display: none;' : null)]);
echo button::create(['label'=>$text['button-search'],'icon'=>$settings->get('theme', 'button_icon_search'),'type'=>'submit','id'=>'btn_search']);
//echo button::create(['label'=>$text['button-reset'],'icon'=>$settings->get('theme', 'button_icon_reset'),'type'=>'button','id'=>'btn_reset','link'=>'voicemails.php','style'=>($search == '' ? 'display: none;' : null)]);
if (!empty($paging_controls_mini)) {
echo "<span style='margin-left: 15px;'>".$paging_controls_mini."</span>\n";
}
@ -281,7 +281,7 @@
echo th_order_by('voicemail_mail_to', $text['label-voicemail_mail_to'], $order_by, $order, null, "class='hide-sm-dn'");
echo th_order_by('voicemail_file', $text['label-voicemail_file_attached'], $order_by, $order, null, "class='center hide-md-dn'");
echo th_order_by('voicemail_local_after_email', $text['label-voicemail_local_after_email'], $order_by, $order, null, "class='center hide-md-dn'");
if (permission_exists('voicemail_transcription_enabled') && ($_SESSION['transcribe']['enabled']['boolean'] ?? '') == "true") {
if (permission_exists('voicemail_transcription_enabled') && $settings->get('transcribe', 'enabled', false) === true) {
echo th_order_by('voicemail_transcription_enabled', $text['label-voicemail_transcription_enabled'], $order_by, $order);
}
if (permission_exists('voicemail_message_view') || permission_exists('voicemail_greeting_view')) {
@ -289,7 +289,7 @@
}
echo th_order_by('voicemail_enabled', $text['label-voicemail_enabled'], $order_by, $order, null, "class='center'");
echo th_order_by('voicemail_description', $text['label-voicemail_description'], $order_by, $order, null, "class='hide-sm-dn'");
if (permission_exists('voicemail_edit') && $list_row_edit_button == 'true') {
if (permission_exists('voicemail_edit') && $list_row_edit_button) {
echo " <td class='action-button'>&nbsp;</td>\n";
}
echo "</tr>\n";
@ -328,7 +328,7 @@
echo " <td class='hide-sm-dn'>".escape($row['voicemail_mail_to'])."&nbsp;</td>\n";
echo " <td class='center hide-md-dn'>".($row['voicemail_file'] == 'attach' ? $text['label-true'] : $text['label-false'])."</td>\n";
echo " <td class='center hide-md-dn'>".ucwords(escape($row['voicemail_local_after_email']))."&nbsp;</td>\n";
if (permission_exists('voicemail_transcription_enabled') && ($_SESSION['transcribe']['enabled']['boolean'] ?? '') == "true") {
if (permission_exists('voicemail_transcription_enabled') && $settings->get('transcribe', 'enabled', false) === true) {
echo " <td>".ucwords(escape($row['voicemail_transcription_enabled']))."&nbsp;</td>\n";
}
if (permission_exists('voicemail_message_view') || permission_exists('voicemail_greeting_view')) {
@ -352,9 +352,9 @@
}
echo " </td>\n";
echo " <td class='description overflow hide-sm-dn'>".escape($row['voicemail_description'])."&nbsp;</td>\n";
if (permission_exists('voicemail_edit') && $list_row_edit_button == 'true') {
if (permission_exists('voicemail_edit') && $list_row_edit_button) {
echo " <td class='action-button'>\n";
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$settings->get('theme', 'button_icon_edit'),'link'=>$list_row_url]);
echo " </td>\n";
}
echo "</tr>\n";

View File

@ -214,7 +214,6 @@
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$y++;
$apps[$x]['permissions'][$y]['name'] = "xml_cdr_hangup_cause";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$y++;
$apps[$x]['permissions'][$y]['name'] = "xml_cdr_details";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
@ -231,7 +230,6 @@
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$y++;
$apps[$x]['permissions'][$y]['name'] = "xml_cdr_archive";
//$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$y++;
$apps[$x]['permissions'][$y]['name'] = "xml_cdr_statistics";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
@ -269,6 +267,21 @@
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$apps[$x]['permissions'][$y]['groups'][] = "admin";
$y++;
$apps[$x]['permissions'][$y]['name'] = 'xml_cdr_extension_view';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'xml_cdr_extension_add';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'xml_cdr_extension_edit';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'xml_cdr_extension_delete';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'xml_cdr_extension_all';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
$y++;
//default settings
$y=0;
@ -858,6 +871,85 @@
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
//xml cdr extensions
$y++;
$apps[$x]['db'][$y]['table']['name'] = 'v_xml_cdr_extensions';
$apps[$x]['db'][$y]['table']['parent'] = '';
$z = 0;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'xml_cdr_extension_uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = 'primary';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'domain_uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = 'foreign';
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = 'v_domains';
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = 'domain_uuid';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'xml_cdr_uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = "foreign";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_xml_cdr";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "domain_uuid";
$apps[$x]['db'][$y]['fields'][$z]['search_by'] = '';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'extension_uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['search_by'] = '';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'start_stamp';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'timestamptz';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'date';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'date';
$apps[$x]['db'][$y]['fields'][$z]['search_by'] = '1';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'end_stamp';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'timestamptz';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'date';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'date';
$apps[$x]['db'][$y]['fields'][$z]['search_by'] = '1';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'duration';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'numeric';
$apps[$x]['db'][$y]['fields'][$z]['search_by'] = '';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'insert_date';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'timestamptz';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'date';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'date';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'insert_user';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'update_date';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'timestamptz';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'date';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'date';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'update_user';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = '';
//schema details
$y++;
$apps[$x]['db'][$y]['table']['name'] = "v_xml_cdr_json";

View File

@ -614,6 +614,10 @@ if (!class_exists('xml_cdr')) {
$domain_name = urldecode($xml->variables->domain_name);
$domain_uuid = urldecode($xml->variables->domain_uuid);
//sanitize the caller ID
$caller_id_name = preg_replace('#[^a-zA-Z 0-9\-\.]#', '', $caller_id_name);
$caller_id_number = preg_replace('#[^0-9\-]#', '', $caller_id_number);
//misc
$this->array[$key][0]['ring_group_uuid'] = urldecode($xml->variables->ring_group_uuid);
$this->array[$key][0]['xml_cdr_uuid'] = $uuid;
@ -634,6 +638,17 @@ if (!class_exists('xml_cdr')) {
$this->array[$key][0]['status'] = $status;
//time
//catch invalid call detail records
if (empty($xml->variables->start_epoch)) {
//empty the array so it can't save
$this->array = null;
//move the file to the failed location
$this->move_to_failed($this->file);
//stop processing
return;
}
$start_epoch = urldecode($xml->variables->start_epoch);
$this->array[$key][0]['start_epoch'] = $start_epoch;
$this->array[$key][0]['start_stamp'] = is_numeric((int)$start_epoch) ? date('c', $start_epoch) : null;
@ -1482,6 +1497,15 @@ if (!class_exists('xml_cdr')) {
}
}
public function moved_to_failed($failed_file) {
$xml_cdr_dir = $this->setting->get('switch', 'log', '/var/log/freeswitch').'/xml_cdr';
if (!file_exists($xml_cdr_dir.'/failed')) {
if (!mkdir($xml_cdr_dir.'/failed', 0660, true)) {
die('Failed to create '.$xml_cdr_dir.'/failed');
}
}
rename($xml_cdr_dir.'/'.$failed_file, $xml_cdr_dir.'/failed/'.$failed_file);
}
/**
* get xml from the filesystem and save it to the database
@ -1528,8 +1552,23 @@ if (!class_exists('xml_cdr')) {
$import = true;
}
//move the files that are too large or zero file size to the failed directory
if ($import && (filesize($xml_cdr_dir.'/'.$file) >= 3000000 || filesize($xml_cdr_dir.'/'.$file) == 0)) {
//echo "WARNING: File too large or zero file size. Moving $file to failed\n";
if (!empty($xml_cdr_dir)) {
if (!file_exists($xml_cdr_dir.'/failed')) {
if (!mkdir($xml_cdr_dir.'/failed', 0660, true)) {
die('Failed to create '.$xml_cdr_dir.'/failed');
}
}
if (rename($xml_cdr_dir.'/'.$file, $xml_cdr_dir.'/failed/'.$file)) {
//echo "Moved $file successfully\n";
}
}
}
//import the call detail files are less than 3 mb - 3 million bytes
if ($import && filesize($xml_cdr_dir.'/'.$file) <= 3000000) {
if ($import) {
//get the xml cdr string
$call_details = file_get_contents($xml_cdr_dir.'/'.$file);
@ -1548,18 +1587,6 @@ if (!class_exists('xml_cdr')) {
$x++;
}
//move the files that are too large to the failed directory
if ($import && filesize($xml_cdr_dir.'/'.$file) >= 3000000) {
if (!empty($xml_cdr_dir)) {
if (!file_exists($xml_cdr_dir.'/failed')) {
if (!mkdir($xml_cdr_dir.'/failed', 0660, true)) {
die('Failed to create '.$xml_cdr_dir.'/failed');
}
}
rename($xml_cdr_dir.'/'.$file, $xml_cdr_dir.'/failed/'.$file);
}
}
//if limit exceeded exit the loop
if ($limit == $x) {
//echo "limit: $limit count: $x if\n";
@ -1729,7 +1756,7 @@ if (!class_exists('xml_cdr')) {
$sql .= "filter ( \n";
$sql .= " where c.extension_uuid = e.extension_uuid \n";
$sql .= " and status = 'answered' \n";
if (!$this->include_internal) {
if (!$this->include_internal) {
$sql .= "and (direction = 'inbound' or direction = 'outbound') \n";
}
$sql .= ") \n";
@ -1741,7 +1768,7 @@ if (!class_exists('xml_cdr')) {
$sql .= " where c.extension_uuid = e.extension_uuid \n";
$sql .= " and status = 'missed' \n";
$sql .= " and (cc_side is null or cc_side != 'agent') \n";
if (!$this->include_internal) {
if (!$this->include_internal) {
$sql .= "and (direction = 'inbound' or direction = 'outbound') \n";
}
$sql .= ") \n";
@ -1752,7 +1779,7 @@ if (!class_exists('xml_cdr')) {
$sql .= "filter ( \n";
$sql .= " where c.extension_uuid = e.extension_uuid \n";
$sql .= " and status = 'voicemail' \n";
if (!$this->include_internal) {
if (!$this->include_internal) {
$sql .= "and (direction = 'inbound' or direction = 'outbound') \n";
}
$sql .= ") \n";
@ -2252,5 +2279,3 @@ if (!class_exists('xml_cdr')) {
} //class
}
?>

View File

@ -329,7 +329,7 @@
}
echo " <td>".escape($row['volume'])."&nbsp;</td>\n";
echo " <td>".escape(round($row['minutes'] ?? 0, 2))."&nbsp;</td>\n";
echo " <td>".escape(round($row['avg_min'] ?? 0, 2))."&nbsp;/&nbsp;".escape(round($row['cpm_ans'] ?? 0, 2))."&nbsp;</td>\n";
echo " <td>".escape(round($row['avg_min'] ?? 0, 2))."&nbsp;/&nbsp;".escape(round($row['cpm_answered'] ?? 0, 2))."&nbsp;</td>\n";
echo " <td class='center'><a href=\"xml_cdr.php?call_result=missed&direction=".$direction."&start_epoch=".escape($row['start_epoch'] ?? '')."&stop_epoch=".escape($row['stop_epoch'] ?? '')."\">".escape($row['missed'] ?? '')."</a>&nbsp;</td>\n";
echo " <td>".escape(round($row['asr'] ?? 0, 2))."&nbsp;</td>\n";
echo " <td>".escape(round($row['aloc'] ?? 0, 2))."&nbsp;</td>\n";

View File

@ -162,4 +162,31 @@ $text['description-totp']['zh-cn'] = "载有认证申请或密码管理员的编
$text['description-totp']['ja-jp'] = "認証アプリケーションまたはパスワードマネージャでコードをスキャンします。 ログイン時にトークンを生成します。";
$text['description-totp']['ko-kr'] = "인증 신청서 또는 비밀번호 관리자로 코드를 스캔합니다. 그런 다음 로그인 토큰을 생성합니다.";
$text['button-forgot_password']['en-us'] = "Forgot Password?";
$text['button-forgot_password']['en-gb'] = "Forgot Password?";
$text['button-forgot_password']['ar-eg'] = "هل نسيت كلمة المرور؟";
$text['button-forgot_password']['de-at'] = "Passwort vergessen?";
$text['button-forgot_password']['de-ch'] = "Passwort vergessen?";
$text['button-forgot_password']['de-de'] = "Passwort vergessen?";
$text['button-forgot_password']['el-gr'] = "Ξεχάσατε τον κωδικό σας;";
$text['button-forgot_password']['es-cl'] = "¿Olvidó su contraseña?";
$text['button-forgot_password']['es-mx'] = "¿Olvidó su contraseña?";
$text['button-forgot_password']['fr-ca'] = "Mot de passe oublié ?";
$text['button-forgot_password']['fr-fr'] = "Mot de passe oublié ?";
$text['button-forgot_password']['he-il'] = "שכחת את הסיסמה שלך؟";
$text['button-forgot_password']['it-it'] = "Password dimenticata?";
$text['button-forgot_password']['ka-ge'] = "დაგიფარგებათ პაროლი?";
$text['button-forgot_password']['nl-nl'] = "Wachtwoord vergeten?";
$text['button-forgot_password']['pl-pl'] = "Zapomniałeś hasła?";
$text['button-forgot_password']['pt-br'] = "Esqueceu a senha?";
$text['button-forgot_password']['pt-pt'] = "Esqueceu a password?";
$text['button-forgot_password']['ro-ro'] = "Ați uitat parola?";
$text['button-forgot_password']['ru-ru'] = "Забыли пароль?";
$text['button-forgot_password']['sv-se'] = "Glömt lösenordet?";
$text['button-forgot_password']['uk-ua'] = "Забули пароль?";
$text['button-forgot_password']['tr-tr'] = "Parolanızı mı unuttunuz?";
$text['button-forgot_password']['zh-cn'] = "忘记密码?";
$text['button-forgot_password']['ja-jp'] = "パスワードを忘れた?";
$text['button-forgot_password']['ko-kr'] = "비밀번호를 잊으셨나요?";
?>

View File

@ -67,6 +67,12 @@ class plugin_database {
$login_destination = $settings->get('login', 'destination');
$users_unique = $settings->get('users', 'unique', '');
//determine whether to show the forgot password for resetting the password
$login_password_reset_enabled = false;
if (!empty($settings->get('login', 'password_reset_key'))) {
$login_password_reset_enabled = true;
}
//check if already authorized
if (isset($_SESSION['authentication']['plugin']['database']) && $_SESSION['authentication']['plugin']['database']["authorized"]) {
return;
@ -106,16 +112,18 @@ class plugin_database {
$view->assign("login_destination_url", $login_destination);
$view->assign("login_domain_name_visible", $login_domain_name_visible);
$view->assign("login_domain_names", $login_domain_name);
$view->assign("login_password_reset_enabled", $login_password_reset_enabled);
$view->assign("favicon", $theme_favicon);
$view->assign("login_logo_width", $theme_login_logo_width);
$view->assign("login_logo_height", $theme_login_logo_height);
$view->assign("login_logo_source", $theme_logo);
$view->assign("message_delay", $theme_message_delay);
$view->assign("background_video", $theme_background_video);
$view->assign("login_password_description", $text['label-password_description']);
$view->assign("button_cancel", $text['button-cancel']);
$view->assign("button_forgot_password", $text['button-forgot_password']);
if (!empty($_SESSION['username'])) {
$view->assign("login_password_description", $text['label-password_description']);
$view->assign("username", $_SESSION['username']);
$view->assign("button_cancel", $text['button-cancel']);
}
//messages

View File

@ -6,7 +6,7 @@
<meta http-equiv='X-UA-Compatible' content='IE=edge' />
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' />
<link rel='stylesheet' type='text/css' href='{$project_path}/themes/default/css.php' />
<link rel='icon' href='{$favicon}'>
<link rel='icon' href='{$favicon}' />
<script language='JavaScript' type='text/javascript' src='{$project_path}/resources/jquery/jquery.min.js.php'></script>
<script language='JavaScript' type='text/javascript'>

View File

@ -6,7 +6,7 @@
<meta http-equiv='X-UA-Compatible' content='IE=edge' />
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' />
<link rel='stylesheet' type='text/css' href='{$project_path}/themes/default/css.php' />
<link rel='icon' href='{$favicon}'>
<link rel='icon' href='{$favicon}' />
<script language='JavaScript' type='text/javascript' src='{$project_path}/resources/jquery/jquery.min.js.php'></script>
<script language='JavaScript' type='text/javascript'>
@ -79,7 +79,7 @@
<input type='text' class='txt login' style='text-align: center; min-width: 200px; width: 200px; margin-bottom: 8px;' name='username' id='username' placeholder="{$label_username}" /><br />
{/if}
<input type='password' class='txt login' style='text-align: center; min-width: 200px; width: 200px; margin-bottom: 8px;' name='password' placeholder="{$label_password}" /><br />
{if !empty($login_domain_name_visible) && $login_domain_name_visible == 'true'}
{if !empty($login_domain_name_visible) && $login_domain_name_visible}
{if empty($login_domain_names)}
<input type='text' class='txt login' style='text-align: center; min-width: 200px; width: 200px; margin-bottom: 8px;' name='domain_name' id='domain_name' placeholder="{$label_domain}" /><br />
{else}
@ -93,10 +93,16 @@
</div>
<div>
<input type='submit' id='btn_login' class='btn' style='width: 100px; margin-top: 15px;' value='{$button_login}' />
<!--
{if !empty($username)}
<br /><br />
<a class='login_link' href='{$project_path}/logout.php'>{$button_cancel}</a>
{/if}
-->
<br />
{if !empty($login_password_reset_enabled) && $login_password_reset_enabled}
<a class='login_link' class='btn' href='{$project_path}/resources/login.php?action=request'>{$button_forgot_password}</a>
{/if}
</div>
</form>
</div>
@ -104,4 +110,3 @@
<script>document.getElementsByName('username')[0].focus();</script>
</body>
</html>

View File

@ -6,7 +6,7 @@
<meta http-equiv='X-UA-Compatible' content='IE=edge' />
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' />
<link rel='stylesheet' type='text/css' href='{$project_path}/themes/default/css.php' />
<link rel='icon' href='{$favicon}'>
<link rel='icon' href='{$favicon}' />
<script language='JavaScript' type='text/javascript' src='{$project_path}/resources/jquery/jquery.min.js.php'></script>
<script language='JavaScript' type='text/javascript'>

View File

@ -6,7 +6,7 @@
<meta http-equiv='X-UA-Compatible' content='IE=edge' />
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' />
<link rel='stylesheet' type='text/css' href='{$project_path}/themes/default/css.php' />
<link rel='icon' href='{$favicon}'>
<link rel='icon' href='{$favicon}' />
<title>{$login_title}</title>
</head>
<body>

View File

@ -6,7 +6,7 @@
<meta http-equiv='X-UA-Compatible' content='IE=edge' />
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' />
<link rel='stylesheet' type='text/css' href='{$project_path}/themes/default/css.php' />
<link rel='icon' href='{$favicon}'>
<link rel='icon' href='{$favicon}' />
<script language='JavaScript' type='text/javascript' src='{$project_path}/resources/jquery/jquery.min.js.php'></script>
<script language='JavaScript' type='text/javascript'>

View File

@ -92,7 +92,7 @@
//get the schema
$x = 0;
include "app/contacts/app_config.php";
include "core/contacts/app_config.php";
$i = 0;
foreach ($apps[0]['db'] as $table) {
//get the table name and parent name
@ -149,7 +149,6 @@
}
//create token
$object = new token;
$token = $object->create($_SERVER['PHP_SELF']);
//include header

View File

@ -187,7 +187,7 @@
//determine initial state all button to display
$expanded_all = true;
if (is_array($dashboard) && @sizeof($dashboard) != 0) {
if (!empty($dashboard)) {
foreach ($dashboard as $row) {
if ($row['dashboard_details_state'] == 'contracted' || $row['dashboard_details_state'] == 'hidden' || $row['dashboard_details_state'] == 'disabled') { $expanded_all = false; }
}
@ -531,8 +531,8 @@ function toggle_grid_row_end_all() {
$dashboard_content_text_align = $row['dashboard_content_text_align'] ?? '';
$dashboard_content_details = $row['dashboard_content_details'] ?? '';
$dashboard_chart_type = $row['dashboard_chart_type'] ?? "doughnut";
$dashboard_label_text_color = $row['dashboard_label_text_color'] ?? $settings->get('theme', 'dashboard_label_text_color');
$dashboard_number_text_color = $row['dashboard_number_text_color'] ?? $settings->get('theme', 'dashboard_number_text_color');
$dashboard_label_text_color = $row['dashboard_label_text_color'] ?? $settings->get('theme', 'dashboard_label_text_color', '');
$dashboard_number_text_color = $row['dashboard_number_text_color'] ?? $settings->get('theme', 'dashboard_number_text_color', '');
$dashboard_details_state = $row['dashboard_details_state'] ?? "expanded";
$dashboard_row_span = $row['dashboard_row_span'] ?? 2;

View File

@ -12,10 +12,7 @@
$text = $language->get($_SESSION['domain']['language']['code'], dirname($dashboard_url));
//get the dashboard label
$dashboard_label = $text['title-'.$dashboard_key];
if (empty($dashboard_label)) {
$dashboard_label = $dashboard_name;
}
$dashboard_label = $text['title-'.$dashboard_key] ?? $dashboard_name;
//prepare variables
$dashboard_target = ($dashboard_target == 'new') ? '_blank' : '_self';

View File

@ -3346,4 +3346,139 @@ $text['label-running']['zh-cn'] = "跑步";
$text['label-running']['ja-jp'] = "ランニング";
$text['label-running']['ko-kr'] = "달리기";
$text['label-email_sent']['en-us'] = "Email Sent";
$text['label-email_sent']['en-gb'] = "Email Sent";
$text['label-email_sent']['ar-eg'] = "تم إرسال البريد الإلكتروني";
$text['label-email_sent']['de-at'] = "E-Mail gesendet";
$text['label-email_sent']['de-ch'] = "E-Mail gesendet";
$text['label-email_sent']['de-de'] = "E-Mail gesendet";
$text['label-email_sent']['el-gr'] = "Το email στάλθηκε";
$text['label-email_sent']['es-cl'] = "Correo electrónico enviado";
$text['label-email_sent']['es-mx'] = "Correo electrónico enviado";
$text['label-email_sent']['fr-ca'] = "Email envoyé";
$text['label-email_sent']['fr-fr'] = "Email envoyé";
$text['label-email_sent']['he-il'] = "האימייל נשלח";
$text['label-email_sent']['it-it'] = "E-mail inviata";
$text['label-email_sent']['ka-ge'] = "ელფოსტის გაგზავნა";
$text['label-email_sent']['nl-nl'] = "E-mail verzonden";
$text['label-email_sent']['pl-pl'] = "Wiadomość e-mail wysłana";
$text['label-email_sent']['pt-br'] = "Email enviado";
$text['label-email_sent']['pt-pt'] = "Email enviado";
$text['label-email_sent']['ro-ro'] = "E-mail trimis";
$text['label-email_sent']['ru-ru'] = "Письмо отправлено";
$text['label-email_sent']['sv-se'] = "E-post skickad";
$text['label-email_sent']['uk-ua'] = "Лист відправлений";
$text['label-email_sent']['tr-tr'] = "E-posta gönderildi";
$text['label-email_sent']['zh-cn'] = "电子邮件已发送";
$text['label-email_sent']['ja-jp'] = "メールが送信されました";
$text['label-email_sent']['ko-kr'] = "이메일이 전송되었습니다";
$text['description-email_sent']['en-us'] = "An email has been sent to with instructions to reset your password.<br />Please check your email.";
$text['description-email_sent']['en-gb'] = "An email has been sent to you with instructions to reset your password.<br />Please check your email.";
$text['description-email_sent']['ar-eg'] = "تم إرسال بريد إلكتروني إليك تحتوي على تعليمات لإعادة تعيين كلمة المرور الخاصة بك.<br />رجاءً قم بمراجعة بريدك الإلكتروني.";
$text['description-email_sent']['de-at'] = "Eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts wurde an Sie gesendet.<br />Bitte überprüfen Sie Ihre E-Mails.";
$text['description-email_sent']['de-ch'] = "Eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts wurde an Sie gesendet.<br />Bitte überprüfen Sie Ihre E-Mails.";
$text['description-email_sent']['de-de'] = "Eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts wurde Ihnen zugesandt.<br />Bitte überprüfen Sie Ihren E-Mail-Postfach.";
$text['description-email_sent']['el-gr'] = "Ένα email έχει σταλεί σας με οδηγίες για την επανάστροφη του κωδικού πρόσβασής σας.<br />Παρακαλώ, ελέγξτε το email σας.";
$text['description-email_sent']['es-cl'] = "Se ha enviado un correo electrónico con instrucciones para restablecer su contraseña.<br />Por favor, verifique su correo electrónico.";
$text['description-email_sent']['es-mx'] = "Se ha enviado un correo electrónico con instrucciones para restablecer su contraseña.<br />Por favor, revise su correo electrónico.";
$text['description-email_sent']['fr-ca'] = "Un courriel contenant des instructions pour réinitialiser votre mot de passe vous a été envoyé.<br />Veuillez vérifier vos courriels.";
$text['description-email_sent']['fr-fr'] = "Un email avec des instructions pour réinitialiser votre mot de passe vous a été envoyé.<br />Veuillez vérifier vos emails.";
$text['description-email_sent']['he-il'] = "נשלח إليكم דוא”ל עם تعليمات להגדרת מחדש את הסיסמה שלכם.<br />בבקשה בדקו את הדוא”לים שלכם.";
$text['description-email_sent']['it-it'] = "È stato inviato un'email con le istruzioni per reimpostare la password.<br />Si prega di controllare la propria email.";
$text['description-email_sent']['ka-ge'] = "თქვენს მიიღებათ წერილი, რომელშიც პაროლის აღდგენისთვის ინსტრუქციები.<br />გთხოვთ, შეამოწმეთ თქვენი ელ-ფოსტა.";
$text['description-email_sent']['nl-nl'] = "Er is een e-mail verzonden met instructies om uw wachtwoord te resetten.<br />Controleer uw e-mail.";
$text['description-email_sent']['pl-pl'] = "Wiadomość e-mail z instrukcjami dotyczącymi resetowania hasła została wysłana do Ciebie.<br />Proszę sprawdzić swoją skrzynkę odbiorczą.";
$text['description-email_sent']['pt-br'] = "Um e-mail foi enviado com instruções para redefinir sua senha.<br />Por favor, verifique seu e-mail.";
$text['description-email_sent']['pt-pt'] = "Foi-lhe enviado um email com instruções sobre como repor a palavra-passe.<br />Por favor, verifique o seu email.";
$text['description-email_sent']['ro-ro'] = "Un e-mail cu instrucțiuni pentru resetarea parolei dumneavoastră a fost trimis.<br />Vă rog să verificați-vă emailul.";
$text['description-email_sent']['ru-ru'] = "Письмо с инструкциями по восстановлению пароля отправлено на вашу электронную почту.<br />Пожалуйста, проверьте свой почтовый ящик.";
$text['description-email_sent']['sv-se'] = "Ett e-postmeddelande med instruktioner för att återställa ditt lösenord har skickats till dig.<br />Vänligen kolla din e-post.";
$text['description-email_sent']['uk-ua'] = "Лист з інструкціями щодо скидання паролю був надісланий на вашу електронну адресу.<br />Будь ласка, перевірте вашу пошту.";
$text['description-email_sent']['tr-tr'] = "Şifrenizi sıfırlamak için talimatları içeren bir e-posta sana gönderildi.<br/>Lütfen e-postanızı kontrol edin.";
$text['description-email_sent']['zh-cn'] = "已发送包含重置密码说明的电子邮件。<br/>请检查您的电子邮件。";
$text['description-email_sent']['ja-jp'] = "パスワードをリセットするための指示が含まれたメールが送信されました。<br/>電子メールをご確認ください。";
$text['description-email_sent']['ko-kr'] = "비밀번호를 재설정하기 위한 지침이 포함된 이메일이 발송되었습니다.<br/>이메일을 확인하세요.";
$text['label-forgot_password']['en-us'] = "Forgot Password?";
$text['label-forgot_password']['en-gb'] = "Forgot Password?";
$text['label-forgot_password']['ar-eg'] = "هل نسيت كلمة المرور؟";
$text['label-forgot_password']['de-at'] = "Passwort vergessen?";
$text['label-forgot_password']['de-ch'] = "Passwort vergessen?";
$text['label-forgot_password']['de-de'] = "Passwort vergessen?";
$text['label-forgot_password']['el-gr'] = "Ξεχάσατε τον κωδικό σας;";
$text['label-forgot_password']['es-cl'] = "¿Olvidó su contraseña?";
$text['label-forgot_password']['es-mx'] = "¿Olvidó su contraseña?";
$text['label-forgot_password']['fr-ca'] = "Mot de passe oublié ?";
$text['label-forgot_password']['fr-fr'] = "Mot de passe oublié ?";
$text['label-forgot_password']['he-il'] = "שכחת את הסיסמה שלך؟";
$text['label-forgot_password']['it-it'] = "Password dimenticata?";
$text['label-forgot_password']['ka-ge'] = "დაგიფარგებათ პაროლი?";
$text['label-forgot_password']['nl-nl'] = "Wachtwoord vergeten?";
$text['label-forgot_password']['pl-pl'] = "Zapomniałeś hasła?";
$text['label-forgot_password']['pt-br'] = "Esqueceu a senha?";
$text['label-forgot_password']['pt-pt'] = "Esqueceu a password?";
$text['label-forgot_password']['ro-ro'] = "Ați uitat parola?";
$text['label-forgot_password']['ru-ru'] = "Забыли пароль?";
$text['label-forgot_password']['sv-se'] = "Glömt lösenordet?";
$text['label-forgot_password']['uk-ua'] = "Забули пароль?";
$text['label-forgot_password']['tr-tr'] = "Parolanızı mı unuttunuz?";
$text['label-forgot_password']['zh-cn'] = "忘记密码?";
$text['label-forgot_password']['ja-jp'] = "パスワードを忘れた?";
$text['label-forgot_password']['ko-kr'] = "비밀번호를 잊으셨나요?";
$text['description-forgot_password']['en-us'] = "Provide the email address associated with your account.";
$text['description-forgot_password']['en-gb'] = "Provide the email address associated with your account.";
$text['description-forgot_password']['ar-eg'] = "أدخل عنوان البريد الإلكتروني المرتبط بحسابك.";
$text['description-forgot_password']['de-at'] = "Geben Sie die E-Mail-Adresse an, die Ihrem Konto zugeordnet ist.";
$text['description-forgot_password']['de-ch'] = "Geben Sie die E-Mail-Adresse an, die Ihrem Konto zugeordnet ist.";
$text['description-forgot_password']['de-de'] = "Geben Sie die E-Mail-Adresse ein, die Ihrem Konto zugeordnet ist.";
$text['description-forgot_password']['el-gr'] = "Παρέχετε τη διεύθυνση e-mail που σχετίζεται με το λογαριασμό σας.";
$text['description-forgot_password']['es-cl'] = "Proporcione la dirección de correo electrónico asociada a su cuenta.";
$text['description-forgot_password']['es-mx'] = "Proporcione la dirección de correo electrónico asociada a su cuenta.";
$text['description-forgot_password']['fr-ca'] = "Fournissez l'adresse e-mail associée à votre compte.";
$text['description-forgot_password']['fr-fr'] = "Fournissez l'adresse e-mail associée à votre compte.";
$text['description-forgot_password']['he-il'] = "укן את כתובת البريد الإلكتروني المرتبطة עם החשבון שלך.";
$text['description-forgot_password']['it-it'] = "Fornire l'indirizzo email associato al tuo account.";
$text['description-forgot_password']['ka-ge'] = "მიუთაციეთ თქვენი 帐გებთან დაკავშირებული ელ.ფოსტის მისამართი.";
$text['description-forgot_password']['nl-nl'] = "Geef het e-mailadres op dat is gekoppeld aan uw account.";
$text['description-forgot_password']['pl-pl'] = "Podaj adres e-mail powiązany z Twoim kontem.";
$text['description-forgot_password']['pt-br'] = "Forneça o endereço de e-mail associado à sua conta.";
$text['description-forgot_password']['pt-pt'] = "Forneça o endereço de e-mail associado à sua conta.";
$text['description-forgot_password']['ro-ro'] = "Furnizați adresa de e-mail asociată cu contul dumneavoastră.";
$text['description-forgot_password']['ru-ru'] = "Введите адрес электронной почты, связанный с вашим аккаунтом.";
$text['description-forgot_password']['sv-se'] = "Ange e-postadressen som är associerad med ditt konto.";
$text['description-forgot_password']['uk-ua'] = "Введіть адресу електронної пошти, пов'язаної з вашим обліковим записом.";
$text['description-forgot_password']['tr-tr'] = "Hesabınızla ilişkili e-posta adresinizi girin.";
$text['description-forgot_password']['zh-cn'] = "请输入与您的账户关联的电子邮件地址。";
$text['description-forgot_password']['ja-jp'] = "アカウントに関連付けられているメール アドレスを入力してください。";
$text['description-forgot_password']['ko-kr'] = "계정과 연결된 이메일 주소를 입력하세요.";
$text['label-password_reset']['en-us'] = "Password Reset";
$text['label-password_reset']['en-gb'] = "Password Reset";
$text['label-password_reset']['ar-eg'] = "إعادة تعيين كلمة المرور";
$text['label-password_reset']['de-at'] = "Passwort zurücksetzen";
$text['label-password_reset']['de-ch'] = "Passwort zurücksetzen";
$text['label-password_reset']['de-de'] = "Passwort zurücksetzen";
$text['label-password_reset']['el-gr'] = "Επαναφορά κωδικού πρόσβασης";
$text['label-password_reset']['es-cl'] = "Restablecimiento de contraseña";
$text['label-password_reset']['es-mx'] = "Restablecimiento de contraseña";
$text['label-password_reset']['fr-ca'] = "Réinitialisation du mot de passe";
$text['label-password_reset']['fr-fr'] = "Réinitialisation du mot de passe";
$text['label-password_reset']['he-il'] = "איפוס סיסמה";
$text['label-password_reset']['it-it'] = "Reset della password";
$text['label-password_reset']['ka-ge'] = "პაროლის განახლება";
$text['label-password_reset']['nl-nl'] = "Wachtwoord resetten";
$text['label-password_reset']['pl-pl'] = "Reset hasła";
$text['label-password_reset']['pt-br'] = "Redefinição de senha";
$text['label-password_reset']['pt-pt'] = "Redefinição de palavra-passe";
$text['label-password_reset']['ro-ro'] = "Resetează parola";
$text['label-password_reset']['ru-ru'] = "Сброс пароля";
$text['label-password_reset']['sv-se'] = "Återställ lösenord";
$text['label-password_reset']['uk-ua'] = "Скидання паролю";
$text['label-password_reset']['tr-tr'] = "Şifre Sıfırlama";
$text['label-password_reset']['zh-cn'] = "重置密码";
$text['label-password_reset']['ja-jp'] = "パスワードのリセット";
$text['label-password_reset']['ko-kr'] = "비밀번호 재설정";
?>

View File

@ -23,10 +23,11 @@
Contributor(s):
Mark J. Crane <markjcrane@fusionpbx.com>
*/
//includes files
require_once __DIR__ . "/resources/require.php";
//additional includes
require_once "resources/check_auth.php";
?>
?>

View File

@ -445,6 +445,7 @@ if (!class_exists('menu')) {
//item exists in the database
if ($menu_item_exists) {
$parent_menu_item_protected = 'false';
//get parent_menu_item_protected
foreach ($menu_items as $item) {
if ($item['uuid'] == $menu['parent_uuid']) {
@ -1237,7 +1238,7 @@ if (!class_exists('menu')) {
$html .= " <div style='height: 100px;'></div>\n";
}
$html .= "</div>\n";
if ($menu_side_state != 'hidden') {
if ($menu_side_state != 'expanded') {
$content_container_onclick = "onclick=\"clearTimeout(menu_side_contract_timer); if ($(window).width() >= 576) { menu_side_contract(); }\"";
}
$html .= "<div id='content_container' ".$content_container_onclick.">\n";
@ -1286,7 +1287,7 @@ if (!class_exists('menu')) {
//header: left
$html .= "<div class='float-left'>\n";
// $html .= button::create(['type'=>'button','id'=>'menu_side_state_hidden_button','title'=>$this->text['theme-label-expand_menu'],'icon'=>'bars','class'=>'default '.($this->settings->get('theme', 'menu_side_state') != 'hidden' ? 'hide-sm-up ' : null).'float-left','onclick'=>'menu_side_expand();']);
$html .= "<a id='menu_side_state_hidden_button' class='$menu_side_state_class' href='show:menu' onclick=\"event.preventDefault(); menu_side_expand();\" title=\"".$this->text['theme-label-expand_menu']."\"><i class='fa-solid fa-bars fa-fw' style='margin: 7px 10px 5px 10px;'></i></a>";
$html .= "<a id='menu_side_state_hidden_button' class='$menu_side_state_class' href='show:menu' onclick=\"event.preventDefault(); menu_side_expand(); event.stopPropagation();\" title=\"".$this->text['theme-label-expand_menu']."\"><i class='fa-solid fa-bars fa-fw' style='margin: 7px 10px 5px 10px;'></i></a>";
$body_header_brand_text = escape($this->settings->get('theme', 'body_header_brand_text', 'FusionPBX'));
if ($this->settings->get('theme', 'body_header_brand_type') == 'image' || $this->settings->get('theme', 'body_header_brand_type') == 'image_text') {
$body_header_brand_image = $this->settings->get('theme', 'body_header_brand_image', PROJECT_PATH.'/themes/default/images/logo_side_expanded.png');

View File

@ -1045,19 +1045,23 @@
//check password strength against requirements (if any)
function check_password_strength($password, $text, $type = 'default') {
//initialize the settigns object
$settings = new settings(['database' => $database, 'domain_uuid' => $_SESSION['domain_uuid']]);
if (!empty($password)) {
if ($type == 'default') {
$req['length'] = $_SESSION['extension']['password_length']['numeric'];
$req['number'] = ($_SESSION['extension']['password_number']['boolean'] == 'true') ? true : false;
$req['lowercase'] = ($_SESSION['extension']['password_lowercase']['boolean'] == 'true') ? true : false;
$req['uppercase'] = ($_SESSION['extension']['password_uppercase']['boolean'] == 'true') ? true : false;
$req['special'] = ($_SESSION['extension']['password_special']['boolean'] == 'true') ? true : false;
$req['length'] = $settings->get('extension', 'password_length', '10');
$req['number'] = $settings->get('extension', 'password_number', true);
$req['lowercase'] = $settings->get('extension', 'password_lowercase', true);
$req['uppercase'] = $settings->get('extension', 'password_uppercase', false);
$req['special'] = $settings->get('extension', 'password_special', false);
} elseif ($type == 'user') {
$req['length'] = $_SESSION['user']['password_length']['numeric'];
$req['number'] = ($_SESSION['user']['password_number']['boolean'] == 'true') ? true : false;
$req['lowercase'] = ($_SESSION['user']['password_lowercase']['boolean'] == 'true') ? true : false;
$req['uppercase'] = ($_SESSION['user']['password_uppercase']['boolean'] == 'true') ? true : false;
$req['special'] = ($_SESSION['user']['password_special']['boolean'] == 'true') ? true : false;
$req['length'] = $settings->get('users', 'password_length', '10');
$req['number'] = $settings->get('users', 'password_number', true);
$req['lowercase'] = $settings->get('users', 'password_lowercase', true);
$req['uppercase'] = $settings->get('users', 'password_uppercase', false);
$req['special'] = $settings->get('users', 'password_special', false);
}
if (is_numeric($req['length']) && $req['length'] != 0 && !preg_match_all('$\S*(?=\S{' . $req['length'] . ',})\S*$', $password)) { // length
$msg_errors[] = $req['length'] . '+ ' . $text['label-characters'];

View File

@ -28,8 +28,10 @@
require_once __DIR__ . "/require.php";
//start the session
ini_set("session.cookie_httponly", true);
if (!isset($_SESSION)) { session_start(); }
if (!isset($_SESSION)) {
ini_set("session.cookie_httponly", true);
session_start();
}
//set the domains session
if (!isset($_SESSION['domains'])) {

View File

@ -6,7 +6,7 @@ CREATE TABLE agents (
name character varying(255),
instance_id character varying(255),
type character varying(255),
contact character varying(255),
contact character varying(1024),
status character varying(255),
state character varying(255),
max_no_answer integer DEFAULT 0 NOT NULL,

File diff suppressed because one or more lines are too long

View File

@ -131,7 +131,6 @@
}
require_once "resources/functions.php";
if (is_array($conf) && count($conf) > 0) {
require_once "resources/pdo.php";
if (!defined('STDIN')) {
require_once "resources/cidr.php";
}

View File

@ -0,0 +1,690 @@
admin.devname = sipalerter
admin.keyui = 1
admin.lang = en
admin.pwd = {$admin_password}
admin.security.encsip = 0
admin.security.strongpw = 0
admin.sic.use = 0
admin.start.status = 1
admin.startuptone = 0
admin.status.portid = 0
admin.teams.region = http://noam.ipp.sdg.teams.microsoft.com
admin.teams.use = 0
admin.timezone = {if isset($algo_timezone)}{$algo_timezone}{else}America/New_York{/if}
admin.voice = en
admin.watchdog = 0
admin.web.api = 0
admin.web.timeout = 3600
admin.welcome = 1
alert.cid1.regex =
alert.cid1.tone = warble2-med.wav
alert.cid1.use = 0
alert.cid2.regex =
alert.cid2.tone = warble2-med.wav
alert.cid2.use = 0
alert.cid3.regex =
alert.cid3.tone = warble2-med.wav
alert.cid3.use = 0
alert.cid4.regex =
alert.cid4.tone = warble2-med.wav
alert.cid4.use = 0
ann.confirm = 0
ann.ctone1 = None
ann.ctone10 = None
ann.ctone2 = None
ann.ctone3 = None
ann.ctone4 = None
ann.ctone5 = None
ann.ctone6 = None
ann.ctone7 = None
ann.ctone8 = None
ann.ctone9 = None
ann.dtmf.tone = Default
ann.end = 0
ann.group1 = Default
ann.group10 = Default
ann.group2 = Default
ann.group3 = Default
ann.group4 = Default
ann.group5 = Default
ann.group6 = Default
ann.group7 = Default
ann.group8 = Default
ann.group9 = Default
ann.length = 1
ann.loop1 = 2
ann.loop10 = 2
ann.loop2 = 2
ann.loop3 = 2
ann.loop4 = 2
ann.loop5 = 2
ann.loop6 = 2
ann.loop7 = 2
ann.loop8 = 2
ann.loop9 = 2
ann.max1 = 1
ann.max10 = 1
ann.max2 = 1
ann.max3 = 1
ann.max4 = 1
ann.max5 = 1
ann.max6 = 1
ann.max7 = 1
ann.max8 = 1
ann.max9 = 1
ann.maxtime = 600
ann.select = 0
ann.tone1 = Default
ann.tone10 = Default
ann.tone2 = Default
ann.tone3 = Default
ann.tone4 = Default
ann.tone5 = Default
ann.tone6 = Default
ann.tone7 = Default
ann.tone8 = Default
ann.tone9 = Default
ann.use1 = 0
ann.use10 = 0
ann.use2 = 0
ann.use3 = 0
ann.use4 = 0
ann.use5 = 0
ann.use6 = 0
ann.use7 = 0
ann.use8 = 0
ann.use9 = 0
ann.zone1 = Default
ann.zone10 = Default
ann.zone2 = Default
ann.zone3 = Default
ann.zone4 = Default
ann.zone5 = Default
ann.zone6 = Default
ann.zone7 = Default
ann.zone8 = Default
ann.zone9 = Default
api.admin.pwd = algo
api.auth.basic = 0
audio.agc.use = 0
audio.broadcast.mode = 1
audio.codec.g722 = 1
audio.drc.gain = 6
audio.drc.use = 0
audio.dtmf.use = 0
audio.filter.mic = none
audio.filter.micnse = 0
audio.filter.spk = none
audio.filter.spknse = 0
audio.g722 = 0
audio.hdx.spkoff = 0
audio.hdx.spkon = 0
audio.input.gain = 0dB
audio.jc.delay = 0
audio.jc.range = 100
audio.menu.vol = 1
audio.noise.level = 66
audio.noise.max = 0dB
audio.noise.noloss = 0
audio.noise.use = 0
audio.output.level = 0
audio.page.delaymode = 0
audio.page.mode = 1
audio.page.timeout = 0
audio.page.tone = page-notif.wav
audio.page.vol = {$algo_page_vol}
audio.port.input = 1
audio.relay.mode = 0
audio.relayout.mode = 0
audio.ring.cid1.delay = 0
audio.ring.cid1.regex =
audio.ring.cid1.tone = warble2-med.wav
audio.ring.cid1.use = 0
audio.ring.cid2.delay = 0
audio.ring.cid2.regex =
audio.ring.cid2.tone = warble2-med.wav
audio.ring.cid2.use = 0
audio.ring.cid3.delay = 0
audio.ring.cid3.regex =
audio.ring.cid3.tone = warble2-med.wav
audio.ring.cid3.use = 0
audio.ring.cid4.delay = 0
audio.ring.cid4.regex =
audio.ring.cid4.tone = warble2-med.wav
audio.ring.cid4.use = 0
audio.ring.io = 0
audio.ring.iologic = 0
audio.ring.strobe2 = None
audio.ring.strobe3 = None
audio.ring.strobe4 = None
audio.ring.strobe5 = None
audio.ring.timeout = 0
audio.ring.tone = warble2-med.wav
audio.ring.tone2 = Default
audio.ring.tone3 = Default
audio.ring.tone4 = Default
audio.ring.tone5 = Default
audio.ring.vol = {$algo_ring_vol}
audio.rtp.media = 1
audio.spk.mode = 0
audio.streaming.mode = 0
audio.vol.adj = 0
audio.vox.mode = 0
audio.vox.thresh = -45dB
audio.vox.timeout = 1
callbox.call.action = 0
callbox.call.dest =
callbox.call.duration = 0
callbox.call.interval = 0
callbox.call.maxtone = 0
callbox.call.tone = chime.wav
callbox.cancel.action = 1
cancel.auth =
cancel.ctone = None
cancel.ext =
cancel.pwd =
cancel.realm =
cancel.select = 0
dtmfpc.alert.code =
dtmfpc.alert.tone = Default
dtmfpc.page.all = 1
dtmfpc.page.code =
dtmfpc.page.tone = Default
dtmfpc.page.use = 0
ifmc.dl.method = http
ifmc.mode = auto
ifmc.retry.interval = 0
ifmc.sip.use = 1
ifmc.use = 0
io.led.heartbeat = 0
io.led.page = 0
io.relayin.apath = 1
io.relayin.mode = disabled
io.relayin.svmode = open
io.relayout = 1
io.ring.mode = 0
io.ring.tone = chime.wav
iot.mqtt.ka = 30
iot.sync.conf = 0
iot.tenant =
iot.use = 0
log.level = info
log.method = local
log.server =
log.size = 100
mcast.dtmf.fixed = 0
mcast.groups.select = 0
mcast.mode = 0
mcast.polycom.default = 1
mcast.polycom.emerg = 25
mcast.polycom.groups = 1,24,25,
mcast.polycom.mode = 0
mcast.polycom.pbgroups = 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,
mcast.polycom.prio = 24
mcast.polycom.tone1 = None
mcast.polycom.tone10 = None
mcast.polycom.tone11 = None
mcast.polycom.tone12 = None
mcast.polycom.tone13 = None
mcast.polycom.tone14 = None
mcast.polycom.tone15 = None
mcast.polycom.tone16 = None
mcast.polycom.tone17 = None
mcast.polycom.tone18 = None
mcast.polycom.tone19 = None
mcast.polycom.tone2 = None
mcast.polycom.tone20 = None
mcast.polycom.tone21 = None
mcast.polycom.tone22 = None
mcast.polycom.tone23 = None
mcast.polycom.tone24 = None
mcast.polycom.tone25 = None
mcast.polycom.tone3 = None
mcast.polycom.tone4 = None
mcast.polycom.tone5 = None
mcast.polycom.tone6 = None
mcast.polycom.tone7 = None
mcast.polycom.tone8 = None
mcast.polycom.tone9 = None
mcast.polycom.vol1 = Default
mcast.polycom.vol10 = Default
mcast.polycom.vol11 = Default
mcast.polycom.vol12 = Default
mcast.polycom.vol13 = Default
mcast.polycom.vol14 = Default
mcast.polycom.vol15 = Default
mcast.polycom.vol16 = Default
mcast.polycom.vol17 = Default
mcast.polycom.vol18 = Default
mcast.polycom.vol19 = Default
mcast.polycom.vol2 = Default
mcast.polycom.vol20 = Default
mcast.polycom.vol21 = Default
mcast.polycom.vol22 = Default
mcast.polycom.vol23 = Default
mcast.polycom.vol24 = Default
mcast.polycom.vol25 = Default
mcast.polycom.vol3 = Default
mcast.polycom.vol4 = Default
mcast.polycom.vol5 = Default
mcast.polycom.vol6 = Default
mcast.polycom.vol7 = Default
mcast.polycom.vol8 = Default
mcast.polycom.vol9 = Default
mcast.polycom.zone = 224.0.1.116:5001
mcast.prio.use = 0
mcast.prio.zones = 9,
mcast.rtp.ext = 0
mcast.rx.zones = 1,8,9,
mcast.rxtone1 = None
mcast.rxtone10 = None
mcast.rxtone11 = None
mcast.rxtone12 = None
mcast.rxtone13 = None
mcast.rxtone14 = None
mcast.rxtone15 = None
mcast.rxtone16 = None
mcast.rxtone17 = None
mcast.rxtone18 = None
mcast.rxtone19 = None
mcast.rxtone2 = None
mcast.rxtone20 = None
mcast.rxtone21 = None
mcast.rxtone22 = None
mcast.rxtone23 = None
mcast.rxtone24 = None
mcast.rxtone25 = None
mcast.rxtone26 = None
mcast.rxtone27 = None
mcast.rxtone28 = None
mcast.rxtone29 = None
mcast.rxtone3 = None
mcast.rxtone30 = None
mcast.rxtone31 = None
mcast.rxtone32 = None
mcast.rxtone33 = None
mcast.rxtone34 = None
mcast.rxtone35 = None
mcast.rxtone36 = None
mcast.rxtone37 = None
mcast.rxtone38 = None
mcast.rxtone39 = None
mcast.rxtone4 = None
mcast.rxtone40 = None
mcast.rxtone41 = None
mcast.rxtone42 = None
mcast.rxtone43 = None
mcast.rxtone44 = None
mcast.rxtone45 = None
mcast.rxtone46 = None
mcast.rxtone47 = None
mcast.rxtone48 = None
mcast.rxtone49 = None
mcast.rxtone5 = None
mcast.rxtone50 = None
mcast.rxtone6 = None
mcast.rxtone7 = None
mcast.rxtone8 = None
mcast.rxtone9 = None
mcast.tone1 = Default
mcast.tone10 = Default
mcast.tone11 = Default
mcast.tone12 = Default
mcast.tone13 = Default
mcast.tone14 = Default
mcast.tone15 = Default
mcast.tone16 = Default
mcast.tone17 = Default
mcast.tone18 = Default
mcast.tone19 = Default
mcast.tone2 = Default
mcast.tone20 = Default
mcast.tone21 = Default
mcast.tone22 = Default
mcast.tone23 = Default
mcast.tone24 = Default
mcast.tone25 = Default
mcast.tone26 = Default
mcast.tone27 = Default
mcast.tone28 = Default
mcast.tone29 = Default
mcast.tone3 = Default
mcast.tone30 = Default
mcast.tone31 = Default
mcast.tone32 = Default
mcast.tone33 = Default
mcast.tone34 = Default
mcast.tone35 = Default
mcast.tone36 = Default
mcast.tone37 = Default
mcast.tone38 = Default
mcast.tone39 = Default
mcast.tone4 = Default
mcast.tone40 = Default
mcast.tone41 = Default
mcast.tone42 = Default
mcast.tone43 = Default
mcast.tone44 = Default
mcast.tone45 = Default
mcast.tone46 = Default
mcast.tone47 = Default
mcast.tone48 = Default
mcast.tone49 = Default
mcast.tone5 = Default
mcast.tone50 = Default
mcast.tone6 = Default
mcast.tone7 = Default
mcast.tone8 = Default
mcast.tone9 = Default
mcast.tx.codec = g722
mcast.tx.fixed = 1
mcast.tx.ptime = 20
mcast.tx.ring = 0
mcast.tx.select = 0
mcast.tx.ttl = 1
mcast.tx.zones = 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,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
mcast.vol1 = Default
mcast.vol10 = Default
mcast.vol11 = Default
mcast.vol12 = Default
mcast.vol13 = Default
mcast.vol14 = Default
mcast.vol15 = Default
mcast.vol16 = Default
mcast.vol17 = Default
mcast.vol18 = Default
mcast.vol19 = Default
mcast.vol2 = Default
mcast.vol20 = Default
mcast.vol21 = Default
mcast.vol22 = Default
mcast.vol23 = Default
mcast.vol24 = Default
mcast.vol25 = Default
mcast.vol26 = Default
mcast.vol27 = Default
mcast.vol28 = Default
mcast.vol29 = Default
mcast.vol3 = Default
mcast.vol30 = Default
mcast.vol31 = Default
mcast.vol32 = Default
mcast.vol33 = Default
mcast.vol34 = Default
mcast.vol35 = Default
mcast.vol36 = Default
mcast.vol37 = Default
mcast.vol38 = Default
mcast.vol39 = Default
mcast.vol4 = Default
mcast.vol40 = Default
mcast.vol41 = Default
mcast.vol42 = Default
mcast.vol43 = Default
mcast.vol44 = Default
mcast.vol45 = Default
mcast.vol46 = Default
mcast.vol47 = Default
mcast.vol48 = Default
mcast.vol49 = Default
mcast.vol5 = Default
mcast.vol50 = Default
mcast.vol6 = Default
mcast.vol7 = Default
mcast.vol8 = Default
mcast.vol9 = Default
mcast.zone1 = 224.0.2.60:50002
mcast.zone10 = 224.0.2.110:50000
mcast.zone11 = 224.0.2.111:50000
mcast.zone12 = 224.0.2.112:50000
mcast.zone13 = 224.0.2.113:50000
mcast.zone14 = 224.0.2.114:50000
mcast.zone15 = 224.0.2.115:50000
mcast.zone16 = 224.0.2.116:50000
mcast.zone17 = 224.0.2.117:50000
mcast.zone18 = 224.0.2.118:50000
mcast.zone19 = 224.0.2.119:50000
mcast.zone2 = 224.0.2.60:50003
mcast.zone20 = 224.0.2.120:50000
mcast.zone21 = 224.0.2.121:50000
mcast.zone22 = 224.0.2.122:50000
mcast.zone23 = 224.0.2.123:50000
mcast.zone24 = 224.0.2.124:50000
mcast.zone25 = 224.0.2.125:50000
mcast.zone26 = 224.0.2.126:50000
mcast.zone27 = 224.0.2.127:50000
mcast.zone28 = 224.0.2.128:50000
mcast.zone29 = 224.0.2.129:50000
mcast.zone3 = 224.0.2.60:50004
mcast.zone30 = 224.0.2.130:50000
mcast.zone31 = 224.0.2.131:50000
mcast.zone32 = 224.0.2.132:50000
mcast.zone33 = 224.0.2.133:50000
mcast.zone34 = 224.0.2.134:50000
mcast.zone35 = 224.0.2.135:50000
mcast.zone36 = 224.0.2.136:50000
mcast.zone37 = 224.0.2.137:50000
mcast.zone38 = 224.0.2.138:50000
mcast.zone39 = 224.0.2.139:50000
mcast.zone4 = 224.0.2.60:50005
mcast.zone40 = 224.0.2.140:50000
mcast.zone41 = 224.0.2.141:50000
mcast.zone42 = 224.0.2.142:50000
mcast.zone43 = 224.0.2.143:50000
mcast.zone44 = 224.0.2.144:50000
mcast.zone45 = 224.0.2.145:50000
mcast.zone46 = 224.0.2.146:50000
mcast.zone47 = 224.0.2.147:50000
mcast.zone48 = 224.0.2.148:50000
mcast.zone49 = 224.0.2.149:50000
mcast.zone5 = 224.0.2.60:50006
mcast.zone50 = 224.0.2.150:50000
mcast.zone6 = 224.0.2.60:50007
mcast.zone7 = 224.0.2.60:50008
mcast.zone8 = 224.0.2.60:50001
mcast.zone9 = 224.0.2.60:50000
mcast.zones.exp = 0
mcast.zones.music = 7,
mcast.zones.select = 0
mcast.zones.tone = Default
net.dhcp.c.ntp = 0
net.dhcp.timeout = 60
net.discovery = 1
net.dscp.rtcp = 0
net.dscp.rtp = 0
net.dscp.sip = 0
net.ethmon = 0
net.http = 1
net.ipv4.method = dhcp
net.ipv6.method = dhcp
net.ll.cdp = 1
net.ll.lldp = 1
net.pnac.auth = EAP-PEAP_MSCHAPV2
net.protocol = ipv4
net.snmp = 0
net.srv.snmp = 0
net.srv.snmp.auth = none
net.srv.snmp.authkey =
net.srv.snmp.community =
net.srv.snmp.priv = none
net.srv.snmp.privkey =
net.srv.snmp.security = 0
net.srv.snmp.user =
net.time = {$ntp_server_primary}
prov.download.cfgpath = {$project_path}app/provision
prov.server.static = {$domain_name}
net.time1 = 0.debian.pool.ntp.org
net.time2 = 1.debian.pool.ntp.org
net.time3 = 2.debian.pool.ntp.org
net.time4 = 3.debian.pool.ntp.org
net.vlan.id = 0
net.vlan.priority = 0
net.vlan.use = 0
phone.dtmf.src = rtp-telev
phone.timeout.inbound = 300
phone.timeout.outbound = 300
phone.timeout.ring = 0
phone.timeout.ringback = 0
phone.tone.page = page-notif.wav
phone.tone.ringback = Default
prov.auth.pwd =
prov.auth.user =
prov.download.cert = 0
prov.download.fwpath =
prov.download.method = http
prov.i = 0
prov.server.method = static
prov.sync.endtime =
prov.sync.frequency = daily
prov.sync.time =
prov.sync.wdays = 1,2,3,4,5,6,7,
prov.use = 1
prov.ztp.use = 0
relayin.mcast.group = 1
relayin.mcast.ip =
relayin.mcast.mode = 0
relayin.mcast.port =
relayin.mcast.type = 0
relayin.override.goup =
relayin.override.zone = 9,
relayin.tamper.action = 0
relayin.tamper.dest =
relayin.tamper.duration = 0
relayin.tamper.interval = 0
relayin.tamper.maxtone = 0
relayin.tamper.tone = buzzer.wav
relayin.trigger.action = 0
relayin.trigger.callmode = 0
relayin.trigger.dest =
relayin.trigger.duration = 0
relayin.trigger.interval = 0
relayin.trigger.maxtone = 0
relayin.trigger.restart = 0
relayin.trigger.tone = chime.wav
relayin.volctl.calibration = 0
relayin.volctl.mute = 1
remote.vol.ip =
remote.vol.mode = disabled
remote.vol.pwd =
sched.use = 1
sd.loud.dest =
sd.loud.sens = 0
sd.loud.use = 0
sip.alert1.auth =
sip.alert1.event = 2
sip.alert1.group = Default
sip.alert1.mode =
sip.alert1.pwd =
sip.alert1.user =
sip.alert1.zone = Default
sip.alert10.auth =
sip.alert10.group = Default
sip.alert10.pwd =
sip.alert10.tone = Default
sip.alert10.use = 0
sip.alert10.user =
sip.alert10.zone = Default
sip.alert2.auth =
sip.alert2.event = 2
sip.alert2.group = Default
sip.alert2.pwd =
sip.alert2.tone = Default
sip.alert2.use = 0
sip.alert2.user =
sip.alert2.zone = Default
sip.alert3.auth =
sip.alert3.event = 2
sip.alert3.group = Default
sip.alert3.pwd =
sip.alert3.tone = Default
sip.alert3.use = 0
sip.alert3.user =
sip.alert3.zone = Default
sip.alert4.auth =
sip.alert4.event = 2
sip.alert4.group = Default
sip.alert4.pwd =
sip.alert4.tone = Default
sip.alert4.use = 0
sip.alert4.user =
sip.alert4.zone = Default
sip.alert5.auth =
sip.alert5.event = 2
sip.alert5.group = Default
sip.alert5.pwd =
sip.alert5.tone = Default
sip.alert5.use = 0
sip.alert5.user =
sip.alert5.zone = Default
sip.alert6.auth =
sip.alert6.group = Default
sip.alert6.pwd =
sip.alert6.tone = Default
sip.alert6.use = 0
sip.alert6.user =
sip.alert6.zone = Default
sip.alert7.auth =
sip.alert7.group = Default
sip.alert7.pwd =
sip.alert7.tone = Default
sip.alert7.use = 0
sip.alert7.user =
sip.alert7.zone = Default
sip.alert8.auth =
sip.alert8.group = Default
sip.alert8.pwd =
sip.alert8.tone = Default
sip.alert8.use = 0
sip.alert8.user =
sip.alert8.zone = Default
sip.alert9.auth =
sip.alert9.group = Default
sip.alert9.pwd =
sip.alert9.tone = Default
sip.alert9.use = 0
sip.alert9.user =
sip.alert9.zone = Default
sip.bkproxy1 =
sip.bkproxy2 =
sip.detect.mode = 1
sip.diffport = 0
sip.interop.checksync = always-reboot
sip.interop.cport = 1
sip.interop.cuser = 1
sip.ka.method = 0
sip.ka.period = 30
sip.mwi.event = 0
sip.mwi.mode = 0
sip.mwi.subs = 0
sip.nat.media =
sip.outbound = 0
sip.obproxy = {$account.1.outbound_proxy}
sip.page.use = 1
sip.proxy = {$account.1.server_address}
sip.regexp = {$account.1.register_expires}
sip.register.use = 1
sip.registrar =
sip.sips = 0
sip.srtp =
sip.srtp.suite = aes_cm_128_hmac_sha1_80
sip.ssr.chkact = 0
sip.ssr.interval = 120
sip.ssr.method = 0
sip.ssr.nofb = 0
sip.ssr.use = 0
sip.stun =
sip.stun.server =
sip.transp = auto
sip.turn.pwd =
sip.turn.server =
sip.turn.user =
sip.u1.auth = {$account.1.auth_id}
sip.u1.pwd = {$account.1.password}
sip.u1.user = {$account.1.user_id}
synapps.port = 6789
synapps.server =
synapps.use = 1
system.u1.pwd = algo
system.u1.use = 0
system.u1.user = Scheduler
watcher.watchdog.use = 0

View File

@ -0,0 +1,683 @@
admin.devname = sipalerter
admin.keyui = 1
admin.lang = en
admin.poe.mode = auto
admin.pwd = {$admin_password}
admin.security.encsip = 0
admin.security.strongpw = 0
admin.sic.use = 0
admin.start.status = 1
admin.startuptone = 1
admin.status.portid = 0
admin.teams.region = http://noam.ipp.sdg.teams.microsoft.com
admin.teams.use = 0
admin.timezone = {if isset($algo_timezone)}{$algo_timezone}{else}America/New_York{/if}
admin.voice = en
admin.watchdog = 0
admin.web.api = 0
admin.web.timeout = 3600
admin.welcome = 1
alert.cid1.regex =
alert.cid1.tone = warble2-med.wav
alert.cid1.use = 0
alert.cid2.regex =
alert.cid2.tone = warble2-med.wav
alert.cid2.use = 0
alert.cid3.regex =
alert.cid3.tone = warble2-med.wav
alert.cid3.use = 0
alert.cid4.regex =
alert.cid4.tone = warble2-med.wav
alert.cid4.use = 0
ann.confirm = 0
ann.ctone1 = None
ann.ctone10 = None
ann.ctone2 = None
ann.ctone3 = None
ann.ctone4 = None
ann.ctone5 = None
ann.ctone6 = None
ann.ctone7 = None
ann.ctone8 = None
ann.ctone9 = None
ann.dtmf.tone = Default
ann.end = 0
ann.group1 = Default
ann.group10 = Default
ann.group2 = Default
ann.group3 = Default
ann.group4 = Default
ann.group5 = Default
ann.group6 = Default
ann.group7 = Default
ann.group8 = Default
ann.group9 = Default
ann.length = 1
ann.loop1 = 2
ann.loop10 = 2
ann.loop2 = 2
ann.loop3 = 2
ann.loop4 = 2
ann.loop5 = 2
ann.loop6 = 2
ann.loop7 = 2
ann.loop8 = 2
ann.loop9 = 2
ann.max1 = 1
ann.max10 = 1
ann.max2 = 1
ann.max3 = 1
ann.max4 = 1
ann.max5 = 1
ann.max6 = 1
ann.max7 = 1
ann.max8 = 1
ann.max9 = 1
ann.maxtime = 600
ann.select = 0
ann.tone1 = Default
ann.tone10 = Default
ann.tone2 = Default
ann.tone3 = Default
ann.tone4 = Default
ann.tone5 = Default
ann.tone6 = Default
ann.tone7 = Default
ann.tone8 = Default
ann.tone9 = Default
ann.use1 = 0
ann.use10 = 0
ann.use2 = 0
ann.use3 = 0
ann.use4 = 0
ann.use5 = 0
ann.use6 = 0
ann.use7 = 0
ann.use8 = 0
ann.use9 = 0
ann.zone1 = Default
ann.zone10 = Default
ann.zone2 = Default
ann.zone3 = Default
ann.zone4 = Default
ann.zone5 = Default
ann.zone6 = Default
ann.zone7 = Default
ann.zone8 = Default
ann.zone9 = Default
api.admin.pwd = algo
api.auth.basic = 0
audio.agc.use = 0
audio.codec.g722 = 1
audio.display.power = 0
audio.drc.gain = 6
audio.drc.use = 0
audio.filter.flatten = 0
audio.filter.mic = none
audio.filter.micnse = 0
audio.filter.spk = none
audio.filter.spknse = 0
audio.g722 = 0
audio.hdx.spkoff = 0
audio.hdx.spkon = 0
audio.jc.delay = 0
audio.jc.range = 100
audio.menu.vol = 1
audio.mic.vol = 0dB
audio.noise.level = 66
audio.noise.max = 0dB
audio.noise.noloss = 0
audio.noise.use = 0
audio.page.delaymode = 0
audio.page.mode = 1
audio.page.timeout = 0
audio.page.tone = page-notif.wav
audio.page.vol = {$algo_page_vol}
audio.relay.mode = 0
audio.ring.cid1.delay = 0
audio.ring.cid1.regex =
audio.ring.cid1.tone = warble2-med.wav
audio.ring.cid1.use = 0
audio.ring.cid2.delay = 0
audio.ring.cid2.regex =
audio.ring.cid2.tone = warble2-med.wav
audio.ring.cid2.use = 0
audio.ring.cid3.delay = 0
audio.ring.cid3.regex =
audio.ring.cid3.tone = warble2-med.wav
audio.ring.cid3.use = 0
audio.ring.cid4.delay = 0
audio.ring.cid4.regex =
audio.ring.cid4.tone = warble2-med.wav
audio.ring.cid4.use = 0
audio.ring.io = 0
audio.ring.iologic = 0
audio.ring.strobe2 = None
audio.ring.strobe3 = None
audio.ring.strobe4 = None
audio.ring.strobe5 = None
audio.ring.timeout = 0
audio.ring.tone = warble2-med.wav
audio.ring.tone2 = Default
audio.ring.tone3 = Default
audio.ring.tone4 = Default
audio.ring.tone5 = Default
audio.ring.vol = {$algo_ring_vol}
audio.rtp.media = 1
audio.spk.mode = 0
audio.vol.adj = 0
callbox.call.action = 0
callbox.call.dest =
callbox.call.duration = 0
callbox.call.interval = 0
callbox.call.maxtone = 0
callbox.call.tone = chime.wav
callbox.cancel.action = 1
cancel.auth =
cancel.ctone = None
cancel.ext =
cancel.pwd =
cancel.realm =
cancel.select = 0
dp.ctrl.disc = 0
dtmfpc.alert.code =
dtmfpc.alert.tone = Default
dtmfpc.page.all = 1
dtmfpc.page.code =
dtmfpc.page.extensions =
dtmfpc.page.tone = Default
dtmfpc.page.use = 0
ifmc.dl.method = http
ifmc.mode = auto
ifmc.retry.interval = 0
ifmc.sip.use = 1
ifmc.use = 0
io.led.heartbeat = 0
io.led.output = 1
io.led.page = 0
io.relayin.mode = disabled
io.relayin.svmode = open
io.relayout = 1
io.ring.mode = 0
io.ring.tone = chime.wav
iot.mqtt.ka = 30
iot.sync.conf = 0
iot.tenant =
iot.use = 0
log.level = info
log.method = local
log.server =
log.size = 100
mcast.dtmf.fixed = 0
mcast.groups.select = 0
mcast.mode = 0
mcast.polycom. = Default
mcast.polycom.default = 1
mcast.polycom.emerg = 25
mcast.polycom.groups = 1,24,25,
mcast.polycom.mode = 0
mcast.polycom.pbgroups = 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,
mcast.polycom.prio = 24
mcast.polycom.tone1 = None
mcast.polycom.tone10 = None
mcast.polycom.tone11 = None
mcast.polycom.tone12 = None
mcast.polycom.tone13 = None
mcast.polycom.tone14 = None
mcast.polycom.tone15 = None
mcast.polycom.tone16 = None
mcast.polycom.tone17 = None
mcast.polycom.tone18 = None
mcast.polycom.tone19 = None
mcast.polycom.tone2 = None
mcast.polycom.tone20 = None
mcast.polycom.tone21 = None
mcast.polycom.tone22 = None
mcast.polycom.tone23 = None
mcast.polycom.tone24 = None
mcast.polycom.tone25 = None
mcast.polycom.tone3 = None
mcast.polycom.tone4 = None
mcast.polycom.tone5 = None
mcast.polycom.tone6 = None
mcast.polycom.tone7 = None
mcast.polycom.tone8 = None
mcast.polycom.tone9 = None
mcast.polycom.vol1 = Default
mcast.polycom.vol10 = Default
mcast.polycom.vol11 = Default
mcast.polycom.vol12 = Default
mcast.polycom.vol13 = Default
mcast.polycom.vol14 = Default
mcast.polycom.vol15 = Default
mcast.polycom.vol16 = Default
mcast.polycom.vol17 = Default
mcast.polycom.vol18 = Default
mcast.polycom.vol19 = Default
mcast.polycom.vol2 = Default
mcast.polycom.vol20 = Default
mcast.polycom.vol21 = Default
mcast.polycom.vol22 = Default
mcast.polycom.vol23 = Default
mcast.polycom.vol24 = Default
mcast.polycom.vol25 = Default
mcast.polycom.vol3 = Default
mcast.polycom.vol4 = Default
mcast.polycom.vol5 = Default
mcast.polycom.vol6 = Default
mcast.polycom.vol7 = Default
mcast.polycom.vol8 = Default
mcast.polycom.vol9 = Default
mcast.polycom.zone = 224.0.1.116:5001
mcast.prio.use = 0
mcast.prio.zones = 9,
mcast.rtp.ext = 0
mcast.rx.zones = 1,8,9,
mcast.rxtone1 = None
mcast.rxtone10 = None
mcast.rxtone11 = None
mcast.rxtone12 = None
mcast.rxtone13 = None
mcast.rxtone14 = None
mcast.rxtone15 = None
mcast.rxtone16 = None
mcast.rxtone17 = None
mcast.rxtone18 = None
mcast.rxtone19 = None
mcast.rxtone2 = None
mcast.rxtone20 = None
mcast.rxtone21 = None
mcast.rxtone22 = None
mcast.rxtone23 = None
mcast.rxtone24 = None
mcast.rxtone25 = None
mcast.rxtone26 = None
mcast.rxtone27 = None
mcast.rxtone28 = None
mcast.rxtone29 = None
mcast.rxtone3 = None
mcast.rxtone30 = None
mcast.rxtone31 = None
mcast.rxtone32 = None
mcast.rxtone33 = None
mcast.rxtone34 = None
mcast.rxtone35 = None
mcast.rxtone36 = None
mcast.rxtone37 = None
mcast.rxtone38 = None
mcast.rxtone39 = None
mcast.rxtone4 = None
mcast.rxtone40 = None
mcast.rxtone41 = None
mcast.rxtone42 = None
mcast.rxtone43 = None
mcast.rxtone44 = None
mcast.rxtone45 = None
mcast.rxtone46 = None
mcast.rxtone47 = None
mcast.rxtone48 = None
mcast.rxtone49 = None
mcast.rxtone5 = None
mcast.rxtone50 = None
mcast.rxtone6 = None
mcast.rxtone7 = None
mcast.rxtone8 = None
mcast.rxtone9 = None
mcast.tone1 = Default
mcast.tone10 = Default
mcast.tone11 = Default
mcast.tone12 = Default
mcast.tone13 = Default
mcast.tone14 = Default
mcast.tone15 = Default
mcast.tone16 = Default
mcast.tone17 = Default
mcast.tone18 = Default
mcast.tone19 = Default
mcast.tone2 = Default
mcast.tone20 = Default
mcast.tone21 = Default
mcast.tone22 = Default
mcast.tone23 = Default
mcast.tone24 = Default
mcast.tone25 = Default
mcast.tone26 = Default
mcast.tone27 = Default
mcast.tone28 = Default
mcast.tone29 = Default
mcast.tone3 = Default
mcast.tone30 = Default
mcast.tone31 = Default
mcast.tone32 = Default
mcast.tone33 = Default
mcast.tone34 = Default
mcast.tone35 = Default
mcast.tone36 = Default
mcast.tone37 = Default
mcast.tone38 = Default
mcast.tone39 = Default
mcast.tone4 = Default
mcast.tone40 = Default
mcast.tone41 = Default
mcast.tone42 = Default
mcast.tone43 = Default
mcast.tone44 = Default
mcast.tone45 = Default
mcast.tone46 = Default
mcast.tone47 = Default
mcast.tone48 = Default
mcast.tone49 = Default
mcast.tone5 = Default
mcast.tone50 = Default
mcast.tone6 = Default
mcast.tone7 = Default
mcast.tone8 = Default
mcast.tone9 = Default
mcast.tx.codec = g722
mcast.tx.fixed = 1
mcast.tx.ptime = 20
mcast.tx.ring = 0
mcast.tx.select = 0
mcast.tx.ttl = 1
mcast.tx.zones = 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,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
mcast.vol1 = Default
mcast.vol10 = Default
mcast.vol11 = Default
mcast.vol12 = Default
mcast.vol13 = Default
mcast.vol14 = Default
mcast.vol15 = Default
mcast.vol16 = Default
mcast.vol17 = Default
mcast.vol18 = Default
mcast.vol19 = Default
mcast.vol2 = Default
mcast.vol20 = Default
mcast.vol21 = Default
mcast.vol22 = Default
mcast.vol23 = Default
mcast.vol24 = Default
mcast.vol25 = Default
mcast.vol26 = Default
mcast.vol27 = Default
mcast.vol28 = Default
mcast.vol29 = Default
mcast.vol3 = Default
mcast.vol30 = Default
mcast.vol31 = Default
mcast.vol32 = Default
mcast.vol33 = Default
mcast.vol34 = Default
mcast.vol35 = Default
mcast.vol36 = Default
mcast.vol37 = Default
mcast.vol38 = Default
mcast.vol39 = Default
mcast.vol4 = Default
mcast.vol40 = Default
mcast.vol41 = Default
mcast.vol42 = Default
mcast.vol43 = Default
mcast.vol44 = Default
mcast.vol45 = Default
mcast.vol46 = Default
mcast.vol47 = Default
mcast.vol48 = Default
mcast.vol49 = Default
mcast.vol5 = Default
mcast.vol50 = Default
mcast.vol6 = Default
mcast.vol7 = Default
mcast.vol8 = Default
mcast.vol9 = Default
mcast.zone1 = 224.0.2.60:50002
mcast.zone10 = 224.0.2.110:50000
mcast.zone11 = 224.0.2.111:50000
mcast.zone12 = 224.0.2.112:50000
mcast.zone13 = 224.0.2.113:50000
mcast.zone14 = 224.0.2.114:50000
mcast.zone15 = 224.0.2.115:50000
mcast.zone16 = 224.0.2.116:50000
mcast.zone17 = 224.0.2.117:50000
mcast.zone18 = 224.0.2.118:50000
mcast.zone19 = 224.0.2.119:50000
mcast.zone2 = 224.0.2.60:50003
mcast.zone20 = 224.0.2.120:50000
mcast.zone21 = 224.0.2.121:50000
mcast.zone22 = 224.0.2.122:50000
mcast.zone23 = 224.0.2.123:50000
mcast.zone24 = 224.0.2.124:50000
mcast.zone25 = 224.0.2.125:50000
mcast.zone26 = 224.0.2.126:50000
mcast.zone27 = 224.0.2.127:50000
mcast.zone28 = 224.0.2.128:50000
mcast.zone29 = 224.0.2.129:50000
mcast.zone3 = 224.0.2.60:50004
mcast.zone30 = 224.0.2.130:50000
mcast.zone31 = 224.0.2.131:50000
mcast.zone32 = 224.0.2.132:50000
mcast.zone33 = 224.0.2.133:50000
mcast.zone34 = 224.0.2.134:50000
mcast.zone35 = 224.0.2.135:50000
mcast.zone36 = 224.0.2.136:50000
mcast.zone37 = 224.0.2.137:50000
mcast.zone38 = 224.0.2.138:50000
mcast.zone39 = 224.0.2.139:50000
mcast.zone4 = 224.0.2.60:50005
mcast.zone40 = 224.0.2.140:50000
mcast.zone41 = 224.0.2.141:50000
mcast.zone42 = 224.0.2.142:50000
mcast.zone43 = 224.0.2.143:50000
mcast.zone44 = 224.0.2.144:50000
mcast.zone45 = 224.0.2.145:50000
mcast.zone46 = 224.0.2.146:50000
mcast.zone47 = 224.0.2.147:50000
mcast.zone48 = 224.0.2.148:50000
mcast.zone49 = 224.0.2.149:50000
mcast.zone5 = 224.0.2.60:50006
mcast.zone50 = 224.0.2.150:50000
mcast.zone6 = 224.0.2.60:50007
mcast.zone7 = 224.0.2.60:50008
mcast.zone8 = 224.0.2.60:50001
mcast.zone9 = 224.0.2.60:50000
mcast.zones.exp = 0
mcast.zones.music = 7,
mcast.zones.select = 0
mcast.zones.tone = Default
net.dhcp.c.ntp = 0
net.dhcp.timeout = 60
net.discovery = 1
net.dscp.rtcp = 0
net.dscp.rtp = 0
net.dscp.sip = 0
net.ethmon = 0
net.http = 1
net.ipv4.method = dhcp
net.ipv6.method = dhcp
net.ll.cdp = 1
net.ll.lldp = 1
net.pnac.auth = EAP-PEAP_MSCHAPV2
net.protocol = ipv4
net.snmp = 0
net.srv.snmp = 0
net.srv.snmp.auth = none
net.srv.snmp.authkey =
net.srv.snmp.community =
net.srv.snmp.priv = none
net.srv.snmp.privkey =
net.srv.snmp.security = 0
net.srv.snmp.user =
net.time = {$ntp_server_primary}
prov.download.cfgpath = {$project_path}app/provision
prov.server.static = {$domain_name}
net.time1 = 0.debian.pool.ntp.org
net.time2 = 1.debian.pool.ntp.org
net.time3 = 2.debian.pool.ntp.org
net.time4 = 3.debian.pool.ntp.org
net.vlan.id = 0
net.vlan.priority = 0
net.vlan.use = 0
phone.dtmf.src = rtp-telev
phone.timeout.inbound = 300
phone.timeout.outbound = 300
phone.timeout.ring = 0
phone.timeout.ringback = 0
phone.tone.page = Default
phone.tone.ringback = Default
prov.auth.pwd =
prov.auth.user =
prov.download.cert = 0
prov.download.fwpath =
prov.download.method = http
prov.i = 0
prov.server.method = static
prov.sync.endtime =
prov.sync.frequency = daily
prov.sync.time =
prov.sync.wdays = 1,2,3,4,5,6,7,
prov.use = 1
prov.ztp.use = 0
relayin.mcast.group = 1
relayin.mcast.ip =
relayin.mcast.mode = 0
relayin.mcast.port =
relayin.mcast.type = 0
relayin.override.group =
relayin.override.zone = 9,
relayin.tamper.action = 0
relayin.tamper.dest =
relayin.tamper.duration = 0
relayin.tamper.interval = 0
relayin.tamper.maxtone = 0
relayin.tamper.tone = buzzer.wav
relayin.trigger.action = 0
relayin.trigger.callmode = 0
relayin.trigger.dest =
relayin.trigger.duration = 0
relayin.trigger.interval = 0
relayin.trigger.maxtone = 0
relayin.trigger.restart = 0
relayin.trigger.tone = chime.wav
relayin.volctl.calibration = 0
relayin.volctl.mute = 1
remote.vol.ip =
remote.vol.mode = disabled
remote.vol.pwd =
sd.loud.dest =
sd.loud.sens = 0
sd.loud.use = 0
sip.alert1.auth =
sip.alert1.event = 2
sip.alert1.group = Default
sip.alert1.mode =
sip.alert1.pwd =
sip.alert1.user =
sip.alert1.zone = Default
sip.alert10.auth =
sip.alert10.group = Default
sip.alert10.pwd =
sip.alert10.tone = Default
sip.alert10.use = 0
sip.alert10.user =
sip.alert10.zone = Default
sip.alert2.auth =
sip.alert2.event = 2
sip.alert2.group = Default
sip.alert2.pwd =
sip.alert2.tone = Default
sip.alert2.use = 0
sip.alert2.user =
sip.alert2.zone = Default
sip.alert3.auth =
sip.alert3.event = 2
sip.alert3.group = Default
sip.alert3.pwd =
sip.alert3.tone = Default
sip.alert3.use = 0
sip.alert3.user =
sip.alert3.zone = Default
sip.alert4.auth =
sip.alert4.event = 2
sip.alert4.group = Default
sip.alert4.pwd =
sip.alert4.tone = Default
sip.alert4.use = 0
sip.alert4.user =
sip.alert4.zone = Default
sip.alert5.auth =
sip.alert5.event = 2
sip.alert5.group = Default
sip.alert5.pwd =
sip.alert5.tone = Default
sip.alert5.use = 0
sip.alert5.user =
sip.alert5.zone = Default
sip.alert6.auth =
sip.alert6.group = Default
sip.alert6.pwd =
sip.alert6.tone = Default
sip.alert6.use = 0
sip.alert6.user =
sip.alert6.zone = Default
sip.alert7.auth =
sip.alert7.group = Default
sip.alert7.pwd =
sip.alert7.tone = Default
sip.alert7.use = 0
sip.alert7.user =
sip.alert7.zone = Default
sip.alert8.auth =
sip.alert8.group = Default
sip.alert8.pwd =
sip.alert8.tone = Default
sip.alert8.use = 0
sip.alert8.user =
sip.alert8.zone = Default
sip.alert9.auth =
sip.alert9.group = Default
sip.alert9.pwd =
sip.alert9.tone = Default
sip.alert9.use = 0
sip.alert9.user =
sip.alert9.zone = Default
sip.bkproxy1 =
sip.bkproxy2 =
sip.detect.mode = 1
sip.diffport = 0
sip.interop.checksync = always-reboot
sip.interop.cport = 1
sip.interop.cuser = 1
sip.ka.method = 0
sip.ka.period = 30
sip.mwi.event = 0
sip.mwi.mode = 0
sip.mwi.subs = 0
sip.nat.media =
sip.obproxy = {$account.1.outbound_proxy}
sip.outbound = 0
sip.page.use = 1
sip.proxy = {$account.1.server_address}
sip.regexp = {$account.1.register_expires}
sip.register.use = 1
sip.registrar =
sip.sips = 0
sip.srtp =
sip.srtp.suite = aes_cm_128_hmac_sha1_80
sip.ssr.chkact = 0
sip.ssr.interval = 120
sip.ssr.method = 0
sip.ssr.nofb = 0
sip.ssr.use = 0
sip.stun =
sip.stun.server =
sip.transp = auto
sip.turn.pwd =
sip.turn.server =
sip.turn.user =
sip.u1.auth = {$account.1.auth_id}
sip.u1.pwd = {$account.1.password}
sip.u1.user = {$account.1.user_id}
synapps.port = 6789
synapps.server =
synapps.use = 1
watcher.watchdog.use = 0

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
<pbgroup>
<id>1</id>
<name>Users</name>
<ringtones>default ringtone</ringtones>
</pbgroup>
<pbgroup>
<id>2</id>
<name>Groups</name>
<ringtones>default ringtone</ringtones>
</pbgroup>
<pbgroup>
<id>3</id>
<name>Extensions</name>
<ringtones>system</ringtones>
</pbgroup>
{$start_id=0}
{foreach $contacts as $row}
{if $row.category == "users"}
<Contact>
<id>{$start_id++}</id>
{if $row.contact_name_given != ""}
{if $row.contact_organization != ""}
<FirstName>{$row.contact_name_given} {$row.contact_name_family}</FirstName>
<FirstName>{$row.contact_name_given} {$row.contact_name_family}</FirstName>
<Company>{$row.contact_organization}</Company>
{else}
<FirstName>{$row.contact_name_given}</FirstName>
<LastName>{$row.contact_name_family}</LastName>
{/if}
{else}
<FirstName>{$row.effective_caller_id_name}</FirstName>
{/if}
<JobTitle></JobTitle>
<Frequent>0</Frequent>
{foreach $row.numbers as $number}
{if $number.phone_number != ""}
{if $number.phone_label == "work"}
<Phone type="Work">
<phonenumber>{$number.phone_number}</phonenumber>
<accountindex>0</accountindex>
</Phone>
{/if}
{if $number.phone_label == "home"}
<Phone type="Home">
<phonenumber>{$number.phone_number}</phonenumber>
<accountindex>0</accountindex>
</Phone>
{/if}
{if $number.phone_label == "mobile"}
<Phone type="Cell">
<phonenumber>{$number.phone_number}</phonenumber>
<accountindex>0</accountindex>
</Phone>
{/if}
{/if}
{/foreach}
<Group>1</Group>
<Primary>0</Primary>
<Department></Department>
<Job></Job>
<Company></Company>
</Contact>
{elseif $row.category == "groups"}
<Contact>
<id>{$start_id++}</id>
{if $row.contact_name_given != ""}
{if $row.contact_organization != ""}
<FirstName>{$row.contact_name_given} {$row.contact_name_family}</FirstName>
<FirstName>{$row.contact_name_given} {$row.contact_name_family}</FirstName>
<Company>{$row.contact_organization}</Company>
{else}
<FirstName>{$row.contact_name_given}</FirstName>
<LastName>{$row.contact_name_family}</LastName>
{/if}
{else}
<FirstName>{$row.effective_caller_id_name}</FirstName>
{/if}
<JobTitle></JobTitle>
<Frequent>0</Frequent>
{foreach $row.numbers as $number}
{if $number.phone_number != ""}
{if $number.phone_label == "work"}
<Phone type="Work">
<phonenumber>{$number.phone_number}</phonenumber>
<accountindex>0</accountindex>
</Phone>
{/if}
{if $number.phone_label == "home"}
<Phone type="Home">
<phonenumber>{$number.phone_number}</phonenumber>
<accountindex>0</accountindex>
</Phone>
{/if}
{if $number.phone_label == "mobile"}
<Phone type="Cell">
<phonenumber>{$number.phone_number}</phonenumber>
<accountindex>0</accountindex>
</Phone>
{/if}
{/if}
{/foreach}
<Group>2</Group>
<Primary>0</Primary>
<Department></Department>
<Job></Job>
<Company></Company>
</Contact>
{elseif $row.category == "extensions"}
<Contact>
<id>{$start_id++}</id>
{if $row.contact_name_given != ""}
{if $row.contact_organization != ""}
<FirstName>{$row.contact_name_given} {$row.contact_name_family}</FirstName>
<FirstName>{$row.contact_name_given} {$row.contact_name_family}</FirstName>
<Company>{$row.contact_organization}</Company>
{else}
<FirstName>{$row.contact_name_given}</FirstName>
<LastName>{$row.contact_name_family}</LastName>
{/if}
{else}
<FirstName>{$row.effective_caller_id_name}</FirstName>
{/if}
<JobTitle></JobTitle>
<Frequent>0</Frequent>
{if $row.phone_number != ""}
<Phone type="Work">
<phonenumber>{$row.phone_number}</phonenumber>
<accountindex>0</accountindex>
</Phone>
{else}
<Phone type="Work">
<phonenumber>{$row.phone_extension}</phonenumber>
<accountindex>0</accountindex>
</Phone>
{/if}
<Group>3</Group>
<Primary>0</Primary>
<Department></Department>
<Job></Job>
<Company></Company>
</Contact>
{/if}
{/foreach}
</AddressBook>

View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<gs_provision version="1">
<config version="2">
<!-- Account General Settings -->
{for $line=1 to 3}
{$row=$lines.$line}
<!-- Account Active -->
<!-- Yes, No -->
{if filter_var($row.enabled, FILTER_VALIDATE_BOOLEAN)}
<item name="account.{$line}.enable">Yes</item>
<!-- Account Name -->
<item name="account.{$line}.name">{$row.display_name}</item>
<!-- SIP Server -->
<item name="account.{$line}.sip.server.1.address">{$row.server_address}</item>
<!-- SIP User ID -->
<item name="account.{$line}.sip.userid">{$row.user_id}</item>
<!-- SIP Authentication ID -->
<item name="account.{$line}.sip.subscriber.userId">{$row.auth_id}</item>
<!-- SIP Authentication Password -->
<item name="account.{$line}.sip.subscriber.password">{$row.password}</item>
<!-- Display Name -->
<item name="account.{$line}.sip.subscriber.name">{$row.display_name}</item>
<!-- Voice Mail Access Number -->
<item name="account.{$line}.sip.voicemail.number">{$voicemail_number}</item>
<!-- Preferred Vocoder -->
<item name="account.{$line}.codec.choice">
<part name="1">PCMU</part>
<part name="2">PCMA</part>
<part name="3">G.722</part>
<part name="4">OPUS</part>
<part name="5">OPUS</part>
<part name="6">OPUS</part>
<part name="7">OPUS</part>
<part name="8">OPUS</part>
</item>
<!-- DialPlan -->
<item name="account.{$line}.call.dialplan">{$grandstream_dial_plan}</item>
{else}
<item name="account.{$line}.enable">No</item>
{/if}
{/for}
<!-- Phone Settings - General Settings -->
<!-- Ethernet Settings -->
<!-- Preferred Internet Protocol -->
<!-- BothAndPreferIPv4, BothAndPreferIPv6, IPv4Only, IPv6Only -->
{if $grandstream_ipv_mode=='0'}
<item name="network.internetProtocol">BothAndPreferIPv4</item>
{elseif $grandstream_ipv_mode=='1'}
<item name="network.internetProtocol">BothAndPreferIPv6</item>
{elseif $grandstream_ipv_mode=='2'}
<item name="network.internetProtocol">IPv4Only</item>
{elseif $grandstream_ipv_mode=='3'}
<item name="network.internetProtocol">IPv6Only</item>
{else}
<item name="network.internetProtocol">BothAndPreferIPv4</item>
{/if}
<!-- Wi-Fi Settings -->
<!-- Wi-Fi Function -->
{if isset($grandstream_wifi_enable)}
<!-- No, Yes -->
<item name="wifi.enable">{if filter_var($grandstream_wifi_enable, FILTER_VALIDATE_BOOLEAN)}Yes{else}No{/if}</item>
<!-- ESSID -->
{if isset($grandstream_wifi_essid)}
<item name="wifi.essidname">{$grandstream_wifi_essid}</item>
<!-- Password -->
<item name="wifi.essidpassword">{$grandstream_wifi_password}</item>
<!-- Security Mode for Hidden SSID -->
<!-- None, WEP, WPA/WPA2_PSK, 802.1X_EAP -->
<item name="wifi.hiddenessid.securitymode">{$grandstream_wifi_hidden_security}</item>
{/if}
<!-- Layer 2 QoS 802.1p Priority Value (Wi-Fi) -->
<item name="wifi.layer2qos.priority">0</item>
{/if}
<!-- System Settings -->
<!-- Assign NTP Server Address -->
{if isset($ntp_server_primary)}
<item name="dateTime.ntp.server.1">{$ntp_server_primary}</item>
{else}
<item name="dateTime.ntp.server.1">pool.ntp.org</item>
{/if}
<!-- # Secondary NTP Server -->
<!-- # String -->
{if isset($ntp_server_secondary)}
<item name="dateTime.ntp.server.2">{$ntp_server_secondary}</item>
{else}
<item name="dateTime.ntp.server.2">2.us.pool.ntp.org</item>
{/if}
<!-- Time Zone -->
{if isset($grandstream_time_zone) }
<item name="dateTime.timezone">{$grandstream_time_zone}</item>
{elseif isset($grandstream_gxp_time_zone) }
<item name="dateTime.timezone">{$grandstream_gxp_time_zone}</item>
{/if}
<!-- Admin Password -->
{if isset($admin_password)}
<item name="users.admin.password">{$admin_password}</item>
{/if}
<!-- User Password -->
{if isset($device_password)}
<item name="users.user.password">{$device_password}</item>
{/if}
<!-- System Settings - TR069 -->
<item name="tr069">
<part name="connectionRequestUsername">{$mac|replace:'-':''|upper}</part>
<part name="url">https://acsguestb.gdms.cloud</part>
</item>
<!-- Firmware Upgrade Mode -->
<!-- TFTP, HTTP, HTTPS -->
{if isset($grandstream_firmware_upgrade_protocol) }
{if $grandstream_firmware_upgrade_protocol=="0"}<item name="provisioning.firmware.protocol">TFTP</item>{/if}
{if $grandstream_firmware_upgrade_protocol=="1"}<item name="provisioning.firmware.protocol">HTTP</item>{/if}
{if $grandstream_firmware_upgrade_protocol=="2"}<item name="provisioning.firmware.protocol">HTTPS</item>{/if}
{else}
<item name="provisioning.firmware.protocol">HTTP</item>
{/if}
<!-- Firmware Server Path -->
{if isset($grandstream_firmware_path) && isset($firmware_version)}
<item name="provisioning.firmware.serverPath">{$grandstream_firmware_path}/{$firmware_version}</item>
{elseif isset($grandstream_firmware_path)}
<item name="provisioning.firmware.serverPath">{$grandstream_firmware_path}</item>
{else}
<item name="provisioning.firmware.serverPath">{$domain_name}{$project_path}/app/provision/resources/firmware/</item>
<item name="provisioning.firmware.username">{$http_auth_username}</item>
<item name="provisioning.firmware.password">{$http_auth_password}</item>
{/if}
<!-- TFTP, HTTP, HTTPS -->
<item name="provisioning.config.protocol">HTTPS</item>
<!-- Config Server Path -->
{if $grandstream_config_server_path=="none"}
<item name="provisioning.config.serverPath"></item>
{elseif isset($grandstream_config_server_path)}
<item name="provisioning.config.serverPath">{$grandstream_config_server_path}</item>
{else}
<item name="provisioning.config.serverPath">{$domain_name}{$project_path}/app/provision</item>
<item name="provisioning.config.username">{$http_auth_username}</item>
<item name="provisioning.config.password">{$http_auth_password}</item>
{/if}
<!-- Phonebook -->
<item name="phonebook.download">
{if isset($grandstream_phonebook_download)}
<part name="mode">{if $grandstream_phonebook_download=="0"}Disabled{elseif $grandstream_phonebook_download=="1"}Enabled Use TFTP{elseif $grandstream_phonebook_download=="2"}Enabled Use HTTP{elseif $grandstream_phonebook_download=="3"}Enabled Use HTTPS{/if}</part>
{/if}
<part name="server">{$grandstream_phonebook_xml_server_path}{$mac}</part>
<part name="interval">{$grandstream_phonebook_download_interval}</part>
<part name="username">{$http_auth_username}</part>
<part name="password">{$http_auth_password}</part>
</item>
</config>
</gs_provision>

View File

@ -994,23 +994,54 @@ phone_setting.backgrounds = Config:yealink_cp860_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -991,23 +991,54 @@ phone_setting.backgrounds = Config:yealink_cp920_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -991,23 +991,54 @@ phone_setting.backgrounds = Config:yealink_cp920_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -993,23 +993,54 @@ phone_setting.backgrounds = Config:yealink_cp960_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1416,34 +1416,54 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Preference&Status ##

View File

@ -973,23 +973,54 @@ phone_setting.backgrounds = Config:yealink_t21p_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -995,23 +995,54 @@ phone_setting.backgrounds = Config:yealink_t23g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -994,23 +994,54 @@ phone_setting.backgrounds = Config:yealink_t23p_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1022,23 +1022,54 @@ phone_setting.backgrounds = Config:yealink_t27g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -995,23 +995,54 @@ phone_setting.backgrounds = Config:yealink_t27p_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1025,23 +1025,54 @@ phone_setting.backgrounds = Config:yealink_t29g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -995,23 +995,54 @@ phone_setting.backgrounds = Config:yealink_t23g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -973,23 +973,54 @@ phone_setting.backgrounds = Config:yealink_t21p_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -994,23 +994,54 @@ phone_setting.backgrounds = Config:yealink_t27g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1405,23 +1405,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Preference&Status ##

View File

@ -1396,11 +1396,11 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
@ -1412,17 +1412,38 @@ multicast.codec =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive_priority.enable =
multicast.receive_priority.priority =
multicast.receive.use_speaker =
multicast.receive.enhance_volume =
multicast.receive.ignore_dnd.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel =
multicast.listen_address.1.label =
multicast.listen_address.1.ip_address =
multicast.listen_address.1.volume =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -997,23 +997,54 @@ phone_setting.backgrounds = Config:yealink_t40g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -996,23 +996,54 @@ phone_setting.backgrounds = Config:yealink_t40p_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -996,23 +996,55 @@ phone_setting.backgrounds = Config:yealink_t41p_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
#######################################################################################
## Super Search ##

View File

@ -1236,7 +1236,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1247,22 +1247,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -995,23 +995,54 @@ phone_setting.backgrounds = Config:yealink_t42g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -996,23 +996,54 @@ phone_setting.backgrounds = Config:yealink_t42g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1396,11 +1396,11 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
@ -1412,17 +1412,38 @@ multicast.codec =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive_priority.enable =
multicast.receive_priority.priority =
multicast.receive.use_speaker =
multicast.receive.enhance_volume =
multicast.receive.ignore_dnd.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel =
multicast.listen_address.1.label =
multicast.listen_address.1.ip_address =
multicast.listen_address.1.volume =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1027,23 +1027,54 @@ phone_setting.backgrounds = Config:yealink_t46g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1390,7 +1390,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1401,22 +1401,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1020,23 +1020,54 @@ phone_setting.backgrounds = Config:yealink_t48g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1393,9 +1393,8 @@ local_time.ntp_server2 = {$ntp_server_secondary}
local_time.time_zone = {$yealink_time_zone}
local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1406,22 +1405,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -954,23 +954,54 @@ phone_setting.backgrounds = Config:yealink_t49g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -994,23 +994,54 @@ phone_setting.backgrounds = Config:yealink_t46g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -995,23 +995,54 @@ phone_setting.backgrounds = Config:yealink_t42g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -994,23 +994,54 @@ phone_setting.backgrounds = Config:yealink_t48g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -996,23 +996,54 @@ phone_setting.backgrounds = Config:yealink_t41p_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -996,23 +996,54 @@ phone_setting.backgrounds = Config:yealink_t40p_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1285,7 +1285,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1296,22 +1296,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1235,7 +1235,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1246,22 +1246,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1234,7 +1234,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1245,22 +1245,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1236,7 +1236,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1247,22 +1247,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -996,23 +996,54 @@ phone_setting.backgrounds = Config:yealink_t40g_wallpaper.png
{/if}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
#Configure the codec of multicast paging.
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
multicast.listen_address.X.label =
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
multicast.listen_address.X.ip_address =
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################
## Super Search ##

View File

@ -1285,7 +1285,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1296,22 +1296,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1235,7 +1235,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1246,22 +1246,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1285,7 +1285,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1296,22 +1296,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1234,7 +1234,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1245,22 +1245,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1234,7 +1234,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1245,22 +1245,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1390,22 +1390,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1390,22 +1390,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1232,7 +1232,7 @@ local_time.time_zone_name = {$yealink_time_zone_name}
#######################################################################################
## Multicast Paging ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
@ -1243,22 +1243,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -958,23 +958,54 @@ phone_setting.emergency.number = {$yealink_emergency_number}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
multicast.receive_priority.enable =
multicast.receive_priority.priority =
###X ranges from 1 to 10
###multicast.listen_address.X.label =
###multicast.listen_address.X.ip_address =
multicast.listen_address.1.label =
multicast.listen_address.1.ip_address =
multicast.codec =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.paging_address.1.label =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -1388,22 +1388,43 @@ local_time.time_zone_name = {$yealink_time_zone_name}
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec=
multicast.codec =
multicast.paging_address.1.channel=
multicast.paging_address.1.label=
multicast.paging_address.1.ip_address=
multicast.receive_priority.enable=
multicast.receive_priority.priority=
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.receive.use_speaker=
multicast.receive.enhance_volume=
multicast.receive.ignore_dnd.priority=
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.listen_address.1.channel=
multicast.listen_address.1.label=
multicast.listen_address.1.ip_address=
multicast.listen_address.1.volume=
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -958,23 +958,54 @@ phone_setting.emergency.number = {$yealink_emergency_number}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
multicast.receive_priority.enable =
multicast.receive_priority.priority =
###X ranges from 1 to 10
###multicast.listen_address.X.label =
###multicast.listen_address.X.ip_address =
multicast.listen_address.1.label =
multicast.listen_address.1.ip_address =
multicast.codec =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.paging_address.1.label =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

View File

@ -959,23 +959,54 @@ phone_setting.emergency.number = {$yealink_emergency_number}
#######################################################################################
## Multicast ##
## Multicast Paging ##
#######################################################################################
##multicast.listen_address.X.label
##multicast.paging_address.X.channel
##multicast.listen_address.X.ip_address
##multicast.paging_address.X.ip_address
##multicast.paging_address.X.label
##multicast.listen_address.X.channel
##multicast.listen_address.X.volume
##Multicast(X ranges from 1 to 31.)
multicast.codec =
multicast.receive_priority.enable =
multicast.receive_priority.priority =
###X ranges from 1 to 10
###multicast.listen_address.X.label =
###multicast.listen_address.X.ip_address =
multicast.listen_address.1.label =
multicast.listen_address.1.ip_address =
multicast.codec =
multicast.paging_address.1.channel =
multicast.paging_address.1.label =
multicast.paging_address.1.ip_address =
multicast.paging_address.1.label =
multicast.receive_priority.enable = {$yealink_multicast_receive_priority_enable}
multicast.receive_priority.priority = {$yealink_multicast_receive_priority_priority}
multicast.receive.use_speaker = {$yealink_multicast_receive_use_speaker}
multicast.receive.enhance_volume = {$yealink_multicast_receive_enhance_volume}
multicast.receive.ignore_dnd.priority = {$yealink_multicast_receive_ignore_dnd_priority}
multicast.listen_address.1.channel = {$yealink_multicast_listen_address_1_channel}
multicast.listen_address.1.label = {$yealink_multicast_listen_address_1_label}
multicast.listen_address.1.ip_address = {$yealink_multicast_listen_address_1_ip_address}
multicast.listen_address.1.volume = {$yealink_multicast_listen_address_1_volume}
multicast.listen_address.2.channel = {$yealink_multicast_listen_address_2_channel}
multicast.listen_address.2.label = {$yealink_multicast_listen_address_2_label}
multicast.listen_address.2.ip_address = {$yealink_multicast_listen_address_2_ip_address}
multicast.listen_address.2.volume = {$yealink_multicast_listen_address_2_volume}
multicast.listen_address.3.channel = {$yealink_multicast_listen_address_3_channel}
multicast.listen_address.3.label = {$yealink_multicast_listen_address_3_label}
multicast.listen_address.3.ip_address = {$yealink_multicast_listen_address_3_ip_address}
multicast.listen_address.3.volume = {$yealink_multicast_listen_address_3_volume}
multicast.listen_address.4.channel = {$yealink_multicast_listen_address_4_channel}
multicast.listen_address.4.label = {$yealink_multicast_listen_address_4_label}
multicast.listen_address.4.ip_address = {$yealink_multicast_listen_address_4_ip_address}
multicast.listen_address.4.volume = {$yealink_multicast_listen_address_4_volume}
multicast.listen_address.5.channel = {$yealink_multicast_listen_address_5_channel}
multicast.listen_address.5.label = {$yealink_multicast_listen_address_5_label}
multicast.listen_address.5.ip_address = {$yealink_multicast_listen_address_5_ip_address}
multicast.listen_address.5.volume = {$yealink_multicast_listen_address_5_volume}
#######################################################################################

Some files were not shown because too many files have changed in this diff Show More