Merge branch 'master' into master

This commit is contained in:
FusionPBX
2021-03-23 14:01:15 -06:00
committed by GitHub
484 changed files with 54238 additions and 8377 deletions
+113 -6
View File
@@ -409,6 +409,90 @@ $text['message-unsupported_file_type']['ru-ru'] = "Тип файла не под
$text['message-unsupported_file_type']['sv-se'] = "Inte stöds filtyp";
$text['message-unsupported_file_type']['uk-ua'] = "Тип файлу не підтримується";
$text['message-username_format_invalid']['en-us'] = "Invalid Username Format";
$text['message-username_format_invalid']['en-gb'] = "Invalid Username Format";
$text['message-username_format_invalid']['ar-eg'] = "";
$text['message-username_format_invalid']['de-at'] = "Ungültiger Benutzername"; //copied from de-de
$text['message-username_format_invalid']['de-ch'] = "Ungültiger Benutzername"; //copied from de-de
$text['message-username_format_invalid']['de-de'] = "Ungültiger Benutzername";
$text['message-username_format_invalid']['es-cl'] = "";
$text['message-username_format_invalid']['es-mx'] = "";
$text['message-username_format_invalid']['fr-ca'] = "";
$text['message-username_format_invalid']['fr-fr'] = "";
$text['message-username_format_invalid']['he-il'] = "";
$text['message-username_format_invalid']['it-it'] = "";
$text['message-username_format_invalid']['nl-nl'] = "";
$text['message-username_format_invalid']['pl-pl'] = "";
$text['message-username_format_invalid']['pt-br'] = "Nome de usuário inválida";
$text['message-username_format_invalid']['pt-pt'] = "";
$text['message-username_format_invalid']['ro-ro'] = "";
$text['message-username_format_invalid']['ru-ru'] = "Неверное имя пользователя";
$text['message-username_format_invalid']['sv-se'] = "";
$text['message-username_format_invalid']['uk-ua'] = "Geçersiz Kullanıcı Adı";
$text['option-username_format_any']['en-us'] = "Any";
$text['option-username_format_any']['en-gb'] = "Any";
$text['option-username_format_any']['ar-eg'] = "Any";
$text['option-username_format_any']['de-at'] = "Any";
$text['option-username_format_any']['de-ch'] = "Any";
$text['option-username_format_any']['de-de'] = "Any";
$text['option-username_format_any']['es-cl'] = "Any";
$text['option-username_format_any']['es-mx'] = "Any";
$text['option-username_format_any']['fr-ca'] = "Any";
$text['option-username_format_any']['fr-fr'] = "Any";
$text['option-username_format_any']['he-il'] = "Any";
$text['option-username_format_any']['it-it'] = "Any";
$text['option-username_format_any']['nl-nl'] = "Any";
$text['option-username_format_any']['pl-pl'] = "Any";
$text['option-username_format_any']['pt-br'] = "Any";
$text['option-username_format_any']['pt-pt'] = "Any";
$text['option-username_format_any']['ro-ro'] = "Any";
$text['option-username_format_any']['ru-ru'] = "Any";
$text['option-username_format_any']['sv-se'] = "Any";
$text['option-username_format_any']['uk-ua'] = "Any";
$text['option-username_format_email']['en-us'] = "Email Address";
$text['option-username_format_email']['en-gb'] = "Email Address";
$text['option-username_format_email']['ar-eg'] = "Email Address";
$text['option-username_format_email']['de-at'] = "Email Address";
$text['option-username_format_email']['de-ch'] = "Email Address";
$text['option-username_format_email']['de-de'] = "Email Address";
$text['option-username_format_email']['es-cl'] = "Email Address";
$text['option-username_format_email']['es-mx'] = "Email Address";
$text['option-username_format_email']['fr-ca'] = "Email Address";
$text['option-username_format_email']['fr-fr'] = "Email Address";
$text['option-username_format_email']['he-il'] = "Email Address";
$text['option-username_format_email']['it-it'] = "Email Address";
$text['option-username_format_email']['nl-nl'] = "Email Address";
$text['option-username_format_email']['pl-pl'] = "Email Address";
$text['option-username_format_email']['pt-br'] = "Email Address";
$text['option-username_format_email']['pt-pt'] = "Email Address";
$text['option-username_format_email']['ro-ro'] = "Email Address";
$text['option-username_format_email']['ru-ru'] = "Email Address";
$text['option-username_format_email']['sv-se'] = "Email Address";
$text['option-username_format_email']['uk-ua'] = "Email Address";
$text['option-username_format_no_email']['en-us'] = "Not Email Address";
$text['option-username_format_no_email']['en-gb'] = "Not Email Address";
$text['option-username_format_no_email']['ar-eg'] = "Not Email Address";
$text['option-username_format_no_email']['de-at'] = "Not Email Address";
$text['option-username_format_no_email']['de-ch'] = "Not Email Address";
$text['option-username_format_no_email']['de-de'] = "Not Email Address";
$text['option-username_format_no_email']['es-cl'] = "Not Email Address";
$text['option-username_format_no_email']['es-mx'] = "Not Email Address";
$text['option-username_format_no_email']['fr-ca'] = "Not Email Address";
$text['option-username_format_no_email']['fr-fr'] = "Not Email Address";
$text['option-username_format_no_email']['he-il'] = "Not Email Address";
$text['option-username_format_no_email']['it-it'] = "Not Email Address";
$text['option-username_format_no_email']['nl-nl'] = "Not Email Address";
$text['option-username_format_no_email']['pl-pl'] = "Not Email Address";
$text['option-username_format_no_email']['pt-br'] = "Not Email Address";
$text['option-username_format_no_email']['pt-pt'] = "Not Email Address";
$text['option-username_format_no_email']['ro-ro'] = "Not Email Address";
$text['option-username_format_no_email']['ru-ru'] = "Not Email Address";
$text['option-username_format_no_email']['sv-se'] = "Not Email Address";
$text['option-username_format_no_email']['uk-ua'] = "Not Email Address";
$text['confirm-delete']['en-us'] = "Do you really want to DELETE this?";
$text['confirm-delete']['en-gb'] = "Do you really want to DELETE this?";
$text['confirm-delete']['ar-eg'] = "هل تريد حقا أن تحذف هذا؟";
@@ -578,8 +662,8 @@ $text['button-clear']['de-de'] = "Zurücksetzen";
$text['button-clear']['el-gr'] = "Εκκαθάριση";
$text['button-clear']['es-cl'] = "Limpiar";
$text['button-clear']['es-mx'] = "Limpiar"; //copied from es-cl
$text['button-clear']['fr-ca'] = "Nettoyer"; //copied from fr-fr
$text['button-clear']['fr-fr'] = "Nettoyer";
$text['button-clear']['fr-ca'] = "Effacer"; //copied from fr-fr
$text['button-clear']['fr-fr'] = "Effacer";
$text['button-clear']['he-il'] = "נקה";
$text['button-clear']['it-it'] = "Pulisci";
$text['button-clear']['nl-nl'] = "";
@@ -670,8 +754,8 @@ $text['button-search']['de-de'] = "Suchen";
$text['button-search']['el-gr'] = "Αναζήτηση";
$text['button-search']['es-cl'] = "Buscar";
$text['button-search']['es-mx'] = "Buscar"; //copied from es-cl
$text['button-search']['fr-ca'] = "Chercher"; //copied from fr-fr
$text['button-search']['fr-fr'] = "Chercher";
$text['button-search']['fr-ca'] = "Rechercher"; //copied from fr-fr
$text['button-search']['fr-fr'] = "Rechercher";
$text['button-search']['he-il'] = "חפש";
$text['button-search']['it-it'] = "Ricerca";
$text['button-search']['nl-nl'] = "";
@@ -3061,6 +3145,29 @@ $text['label-add']['sv-se'] = "Lägg Till";
$text['label-add']['uk-ua'] = "Додати";
$text['label-add']['tr-tr'] = "Ekle";
$text['label-update']['en-us'] = "Update";
$text['label-update']['en-gb'] = "Update";
$text['label-update']['ar-eg'] = "";
$text['label-update']['de-at'] = ""; //copied from de-de
$text['label-update']['de-ch'] = ""; //copied from de-de
$text['label-update']['de-de'] = "";
$text['label-update']['el-gr'] = "";
$text['label-update']['es-cl'] = "";
$text['label-update']['es-mx'] = ""; //copied from es-cl
$text['label-update']['fr-ca'] = ""; //copied from fr-fr
$text['label-update']['fr-fr'] = "";
$text['label-update']['he-il'] = "";
$text['label-update']['it-it'] = "";
$text['label-update']['nl-nl'] = "";
$text['label-update']['pl-pl'] = "";
$text['label-update']['pt-br'] = ""; //copied from pt-pt
$text['label-update']['pt-pt'] = "";
$text['label-update']['ro-ro'] = "";
$text['label-update']['ru-ru'] = "";
$text['label-update']['sv-se'] = "";
$text['label-update']['uk-ua'] = "";
$text['label-update']['tr-tr'] = "";
$text['label-delete']['en-us'] = "Delete";
$text['label-delete']['en-gb'] = "Delete";
$text['label-delete']['ar-eg'] = "";
@@ -4142,8 +4249,8 @@ $text['label-uploaded']['de-ch'] = "Hochgeladen"; //copied from de-de
$text['label-uploaded']['de-de'] = "Hochgeladen";
$text['label-uploaded']['es-cl'] = "Subir";
$text['label-uploaded']['es-mx'] = "Subir"; //copied from es-cl
$text['label-uploaded']['fr-ca'] = "Envoyé"; //copied from fr-fr
$text['label-uploaded']['fr-fr'] = "Envoyé";
$text['label-uploaded']['fr-ca'] = "Envoyés"; //copied from fr-fr
$text['label-uploaded']['fr-fr'] = "Envoyés";
$text['label-uploaded']['he-il'] = "הוטען";
$text['label-uploaded']['it-it'] = "Caricato";
$text['label-uploaded']['nl-nl'] = "Opgestuurd";
+3 -1
View File
@@ -74,6 +74,7 @@
if ($result["authorized"] === "true") {
//set the session variables
$_SESSION["domain_uuid"] = $result["domain_uuid"];
//$_SESSION["domain_name"] = $result["domain_name"];
$_SESSION["user_uuid"] = $result["user_uuid"];
//user session array
@@ -146,6 +147,7 @@
if (is_array($sql_where_or) && @sizeof($sql_where_or) != 0) {
$sql .= "and (".implode(' or ', $sql_where_or).") ";
}
$sql .= "and permission_assigned = 'true' ";
$parameters['domain_uuid'] = $_SESSION["domain_uuid"];
$database = new database;
$result = $database->select($sql, $parameters, 'all');
@@ -246,7 +248,7 @@
$_SESSION['user']['extension'][$x]['user_context'] = $row['user_context'];
$_SESSION['user']['extension'][$x]['description'] = $row['description'];
//set the user context
//set the context
$_SESSION['user']['user_context'] = $row["user_context"];
$_SESSION['user_context'] = $row["user_context"];
}
+3 -1
View File
@@ -59,7 +59,9 @@ if (!class_exists('button')) {
$button .= $array['onclick'] ? "onclick=".self::quote($array['onclick'])." " : null;
$button .= $array['onmouseover'] ? "onmouseenter=".self::quote($array['onmouseover'])." " : null;
$button .= $array['onmouseout'] ? "onmouseleave=".self::quote($array['onmouseout'])." " : null;
$button .= "class='btn btn-".($array['class'] ? $array['class'] : 'default')." ".($array['disabled'] ? 'disabled' : null)."' ";
//detect class addition (using + prefix)
$button_class = $array['class'] && $array['class'][0] == '+' ? 'default '.substr($array['class'], 1) : $array['class'];
$button .= "class='btn btn-".($button_class ? $button_class : 'default')." ".($array['disabled'] ? 'disabled' : null)."' ";
//ensure margin* styles are not applied to the button element when a link is defined
if (is_array($array['style']) && @sizeof($array['style']) != 0) {
foreach ($array['style'] as $property => $value) {
+7 -5
View File
@@ -145,11 +145,13 @@ class cache {
event_socket_request($fp, $event);
//remove the local files
if (file_exists($_SESSION['cache']['location']['text'] . "/" . $key)) {
unlink($_SESSION['cache']['location']['text'] . "/" . $key);
}
if (file_exists($_SESSION['cache']['location']['text'] . "/" . $key . ".tmp")) {
unlink($_SESSION['cache']['location']['text'] . "/" . $key . ".tmp");
foreach (glob($_SESSION['cache']['location']['text'] . "/" . $key) as $file) {
if (file_exists($file)) {
unlink($file);
}
if (file_exists($file)) {
unlink($file . ".tmp");
}
}
}
+3 -3
View File
@@ -62,7 +62,7 @@ include "root.php";
* Called when the object is created
*/
public function __construct() {
if (!isset($this->domain_uuid)) {
if (!isset($this->domain_uuid) && isset($_SESSION['domain_uuid'])) {
$this->domain_uuid = $_SESSION['domain_uuid'];
}
}
@@ -1619,7 +1619,7 @@ include "root.php";
} //end function toggle
public function save($array) {
public function save($array, $transaction_save = true) {
//return the array
if (!is_array($array)) { echo "not an array"; return false; }
@@ -2248,7 +2248,7 @@ include "root.php";
$user_uuid = $_SESSION['user_uuid'];
//log the transaction results
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/database_transactions/app_config.php")) {
if ($transaction_save && file_exists($_SERVER["PROJECT_ROOT"]."/app/database_transactions/app_config.php")) {
try {
$sql = "insert into v_database_transactions ";
$sql .= "(";
+6 -2
View File
@@ -262,8 +262,6 @@ if (!class_exists('domains')) {
//clear the domains session array to update it
unset($_SESSION["domains"]);
unset($_SESSION["domain_uuid"]);
unset($_SESSION["domain_name"]);
unset($_SESSION['domain']);
unset($_SESSION['switch']);
@@ -873,6 +871,9 @@ if (!class_exists('domains')) {
$sql .= "default_setting_subcategory, ";
$sql .= "default_setting_name, ";
$sql .= "default_setting_value, ";
if ($row['default_setting_order']) {
$sql .= "default_setting_order, ";
}
$sql .= "default_setting_enabled, ";
$sql .= "default_setting_description ";
$sql .= ") values \n";
@@ -882,6 +883,9 @@ if (!class_exists('domains')) {
$sql .= "'".check_str($row['default_setting_subcategory'])."', ";
$sql .= "'".check_str($row['default_setting_name'])."', ";
$sql .= "'".check_str($row['default_setting_value'])."', ";
if ($row['default_setting_order']) {
$sql .= "'".check_str($row['default_setting_order'])."', ";
}
$sql .= "'".check_str($row['default_setting_enabled'])."', ";
$sql .= "'".check_str($row['default_setting_description'])."' ";
$sql .= ");";
+12 -2
View File
@@ -65,15 +65,25 @@ class file {
/**
* Get the sounds list of search as a relative path without the rate
*/
public function sounds() {
$dir = $_SESSION['switch']['sounds']['dir'].'/en/us/callie';
public function sounds($language = 'en', $dialect = 'us', $voice = 'callie') {
//set default values
if (!isset($language)) { $language = 'en'; }
if (!isset($dialect)) { $dialect = 'us'; }
if (!isset($voice)) { $voice = 'callie'; }
//set the variables
$dir = $_SESSION['switch']['sounds']['dir'].'/'.$language.'/'.$dialect.'/'.$voice;
$rate = '8000';
$files = $this->glob($dir.'/*/'.$rate, true);
//loop through the languages
foreach($files as $file) {
$file = substr($file, strlen($dir)+1);
$file = str_replace("/".$rate, "", $file);
$array[] = $file;
}
//return the list of sounds
return $array;
}
+35 -39
View File
@@ -34,6 +34,7 @@ if (!class_exists('schema')) {
public $apps;
public $db_type;
public $result;
public $data_types;
//class constructor
public function __construct() {
@@ -49,7 +50,12 @@ if (!class_exists('schema')) {
$config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php");
$x=0;
foreach ($config_list as &$config_path) {
include($config_path);
try {
include($config_path);
}
catch (Exception $e) {
//echo 'Caught exception: ', $e->getMessage(), "\n";
}
$x++;
}
$this->apps = $apps;
@@ -381,7 +387,7 @@ if (!class_exists('schema')) {
$field_count++;
}
}
$sql .= ");\n\n";
$sql .= ");\n";
return $sql;
}
}
@@ -452,7 +458,7 @@ if (!class_exists('schema')) {
$field_count++;
}
}
$sql .= " FROM tmp_".$table.";\n\n";
$sql .= " FROM tmp_".$table.";\n";
return $sql;
}
}
@@ -463,8 +469,9 @@ if (!class_exists('schema')) {
public function schema ($format = '') {
//set the global variable
global $db, $upgrade_data_types, $text,$output_format;
if ($format=='') $format = $output_format;
global $db, $text, $output_format;
if ($format == '') $format = $output_format;
//get the db variables
require_once "resources/classes/config.php";
@@ -519,7 +526,12 @@ if (!class_exists('schema')) {
$config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php");
$x=0;
foreach ($config_list as &$config_path) {
include($config_path);
try {
include($config_path);
}
catch (Exception $e) {
//echo 'Caught exception: ', $e->getMessage(), "\n";
}
$x++;
}
@@ -665,7 +677,7 @@ if (!class_exists('schema')) {
//change the data type if it has been changed
//if the data type in the app db array is different than the type in the database then change the data type
if ($upgrade_data_types) {
if ($this->data_types) {
$db_field_type = $this->db_column_data_type ($db_type, $db_name, $table_name, $field_name);
$field_type_array = explode("(", $field_type);
$field_type = $field_type_array[0];
@@ -677,40 +689,24 @@ if (!class_exists('schema')) {
$sql_update .= "AS uuid);\n";
}
else {
if ($db_field_type == "integer" && strtolower($field_type) == "serial") {
//field type has not changed
}
else if ($db_field_type == "timestamp without time zone" && strtolower($field_type) == "timestamp") {
//field type has not changed
}
else if ($db_field_type == "timestamp without time zone" && strtolower($field_type) == "datetime") {
//field type has not changed
}
else if ($db_field_type == "timestamp with time zone" && strtolower($field_type) == "timestamptz") {
//field type has not changed
}
else if ($db_field_type == "integer" && strtolower($field_type) == "numeric") {
//field type has not changed
}
else if ($db_field_type == "character" && strtolower($field_type) == "char") {
//field type has not changed
}
//field type has not changed
if ($db_field_type == "integer" && strtolower($field_type) == "serial") { }
else if ($db_field_type == "timestamp without time zone" && strtolower($field_type) == "timestamp") { }
else if ($db_field_type == "timestamp without time zone" && strtolower($field_type) == "datetime") { }
else if ($db_field_type == "timestamp with time zone" && strtolower($field_type) == "timestamptz") { }
else if ($db_field_type == "integer" && strtolower($field_type) == "numeric") { }
else if ($db_field_type == "character" && strtolower($field_type) == "char") { }
//field type has changed
else {
switch ($field_type) {
case 'numeric': $using = $field_name."::numeric"; break;
case 'timestamp':
case 'datetime':
$sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type." USING ".$field_name."::timestamp without time zone;\n";
break;
case 'timestamptz':
$sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type." USING ".$field_name."::timestamp with time zone;\n";
break;
case 'boolean':
$sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type." USING ".$field_name."::boolean;\n";
break;
default:
//$sql_update .= "-- $db_type, $db_name, $table_name, $field_name ".db_column_data_type ($db_type, $db_name, $table_name, $field_name)."<br>";
$sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type.";\n";
case 'datetime': $using = $field_name."::timestamp without time zone"; break;
case 'timestamptz': $using = $field_name."::timestamp with time zone"; break;
case 'boolean': $using = $field_name."::boolean"; break;
default: unset($using);
}
$sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type." ".($using ? "USING ".$using : null).";\n";
}
}
}
@@ -896,11 +892,11 @@ if (!class_exists('schema')) {
try {
$this->db->query(trim($sql));
if ($format == "text") {
$response .= " $sql\n";
$response .= " $sql;\n";
}
}
catch (PDOException $error) {
$response .= " error: " . $error->getMessage() . " sql: $sql<br/>";
$response .= " error: " . $error->getMessage() . " sql: $sql\n";
}
}
}
+1 -1
View File
@@ -72,7 +72,7 @@
$view = new template();
$view->engine = 'smarty';
$view->template_dir = $_SERVER['DOCUMENT_ROOT'].PROJECT_PATH.'/themes/'.$_SESSION['domain']['template']['name'].'/';
$view->cache_dir = $_SESSION['server']['temp']['dir'];
$view->cache_dir = $_SESSION['server']['temp']['dir'] ?: sys_get_temp_dir();
$view->init();
//add multi-lingual support
+76 -50
View File
@@ -51,7 +51,7 @@
}
}
if ($db_type == "pgsql") {
$string = pg_escape_string($string);
$string = str_replace("'","''",$string);
}
if ($db_type == "mysql") {
if(function_exists('mysql_real_escape_string')){
@@ -393,7 +393,7 @@
//html table header order by
function th_order_by($field_name, $column_title, $order_by, $order, $app_uuid = '', $css = '', $http_get_params = '', $description = '') {
global $text;
if (is_uuid($app_uuid) > 0) { $app_uuid = "&app_uuid=".$app_uuid; } // accomodate need to pass app_uuid where necessary (inbound/outbound routes lists)
if (is_uuid($app_uuid) > 0) { $app_uuid = "&app_uuid=".urlencode($app_uuid); } // accomodate need to pass app_uuid where necessary (inbound/outbound routes lists)
$field_name = preg_replace("#[^a-zA-Z0-9_]#", "", $field_name);
$field_value = preg_replace("#[^a-zA-Z0-9_]#", "", $field_value);
@@ -438,13 +438,19 @@
if (strlen($order_by) == 0) {
$order = 'asc';
}
if ($order == "asc") {
$description .= $text['label-order'].': '.$text['label-ascending'];
$html .= "<a href='?order_by=".urlencode($field_name)."&order=desc".urlencode($app_uuid).$sanitized_parameters."' title=\"".escape($description)."\">".escape($column_title)."</a>";
if ($order_by == $field_name) {
if ($order == "asc") {
$description .= $text['label-order'].' '.$text['label-descending'];
$html .= "<a href='?order_by=".urlencode($field_name)."&order=desc".$app_uuid.$sanitized_parameters."' title=\"".escape($description)."\">".escape($column_title)."</a>";
}
else {
$description .= $text['label-order'].' '.$text['label-ascending'];
$html .= "<a href='?order_by=".urlencode($field_name)."&order=asc".$app_uuid.$sanitized_parameters."' title=\"".escape($description)."\">".escape($column_title)."</a>";
}
}
else {
$description .= $text['label-order'].': '.$text['label-descending'];
$html .= "<a href='?order_by=".urlencode($field_name)."&order=asc".urlencode($app_uuid).$sanitized_parameters."' title=\"".escape($description)."\">".escape($column_title)."</a>";
$description .= $text['label-order'].' '.$text['label-ascending'];
$html .= "<a href='?order_by=".urlencode($field_name)."&order=asc".$app_uuid.$sanitized_parameters."' title=\"".escape($description)."\">".escape($column_title)."</a>";
}
$html .= "</th>";
return $html;
@@ -1405,45 +1411,33 @@ function number_pad($number,$n) {
if (!is_array($eml_recipients)) { // must be a single or delimited recipient address(s)
$eml_recipients = str_replace(' ', '', $eml_recipients);
if (substr_count(',', $eml_recipients)) { $delim = ','; }
if (substr_count(';', $eml_recipients)) { $delim = ';'; }
if ($delim) { $eml_recipients = explode($delim, $eml_recipients); } // delimiter found, convert to array of addresses
$eml_recipients = str_replace(array(';',','), ' ', $eml_recipients);
$eml_recipients = explode(' ', $eml_recipients); // convert to array of addresses
}
if (is_array($eml_recipients)) { // check if multiple recipients
foreach ($eml_recipients as $eml_recipient) {
if (is_array($eml_recipient)) { // check if each recipient has multiple fields
if ($eml_recipient["address"] != '' && preg_match($regexp, $eml_recipient["address"]) == 1) { // check if valid address
switch ($eml_recipient["delivery"]) {
case "cc" : $mail -> AddCC($eml_recipient["address"], ($eml_recipient["name"]) ? $eml_recipient["name"] : $eml_recipient["address"]); break;
case "bcc" : $mail -> AddBCC($eml_recipient["address"], ($eml_recipient["name"]) ? $eml_recipient["name"] : $eml_recipient["address"]); break;
default : $mail -> AddAddress($eml_recipient["address"], ($eml_recipient["name"]) ? $eml_recipient["name"] : $eml_recipient["address"]);
}
$address_found = true;
foreach ($eml_recipients as $eml_recipient) {
if (is_array($eml_recipient)) { // check if each recipient has multiple fields
if ($eml_recipient["address"] != '' && preg_match($regexp, $eml_recipient["address"]) == 1) { // check if valid address
switch ($eml_recipient["delivery"]) {
case "cc" : $mail -> AddCC($eml_recipient["address"], ($eml_recipient["name"]) ? $eml_recipient["name"] : $eml_recipient["address"]); break;
case "bcc" : $mail -> AddBCC($eml_recipient["address"], ($eml_recipient["name"]) ? $eml_recipient["name"] : $eml_recipient["address"]); break;
default : $mail -> AddAddress($eml_recipient["address"], ($eml_recipient["name"]) ? $eml_recipient["name"] : $eml_recipient["address"]);
}
}
else if ($eml_recipient != '' && preg_match($regexp, $eml_recipient) == 1) { // check if recipient value is simply (only) an address
$mail -> AddAddress($eml_recipient);
$address_found = true;
}
}
if (!$address_found) {
$eml_error = "No valid e-mail address provided.";
return false;
}
}
else { // just a single e-mail address found, not an array of addresses
if ($eml_recipients != '' && preg_match($regexp, $eml_recipients) == 1) { // check if email syntax is valid
$mail -> AddAddress($eml_recipients);
}
else {
$eml_error = "No valid e-mail address provided.";
return false;
else if ($eml_recipient != '' && preg_match($regexp, $eml_recipient) == 1) { // check if recipient value is simply (only) an address
$mail -> AddAddress($eml_recipient);
$address_found = true;
}
}
if (!$address_found) {
$eml_error = "No valid e-mail address provided.";
return false;
}
if (is_array($eml_attachments) && sizeof($eml_attachments) > 0) {
foreach ($eml_attachments as $attachment) {
$attachment['name'] = $attachment['name'] != '' ? $attachment['name'] : basename($attachment['value']);
@@ -2058,13 +2052,25 @@ function number_pad($number,$n) {
//validate and format order by clause of select statement
if (!function_exists('order_by')) {
function order_by($col, $dir, $col_default = '', $dir_default = 'asc') {
$order_by = ' order by ';
$col = preg_replace('#[^a-zA-Z0-9-_.]#', '', $col);
$dir = strtolower($dir) == 'desc' ? 'desc' : 'asc';
if ($col != '') {
return ' order by '.$col.' '.$dir.' ';
return $order_by.$col.' '.$dir.' ';
}
else if ($col_default != '') {
return ' order by '.$col_default.' '.$dir_default.' ';
else if (is_array($col_default) || $col_default != '') {
if (is_array($col_default) && @sizeof($col_default) != 0) {
foreach ($col_default as $k => $column) {
$direction = (is_array($dir_default) && @sizeof($dir_default) != 0 && (strtolower($dir_default[$k]) == 'asc' || strtolower($dir_default[$k]) == 'desc')) ? $dir_default[$k] : 'asc';
$order_bys[] = $column.' '.$direction.' ';
}
if (is_array($order_bys) && @sizeof($order_bys) != 0) {
return $order_by.implode(', ', $order_bys);
}
}
else {
return $order_by.$col_default.' '.$dir_default.' ';
}
}
}
}
@@ -2135,19 +2141,29 @@ function number_pad($number,$n) {
function persistent_form_values($action, $array = null) {
switch ($action) {
case 'store':
// $array is expected to be an array of key / value pairs to store in the session
if (is_array($array) && @sizeof($array) != 0) {
$_SESSION[$_SERVER['PHP_SELF']] = $array;
$_SESSION['persistent'][$_SERVER['PHP_SELF']] = $array;
}
break;
case 'exists':
return is_array($_SESSION[$_SERVER['PHP_SELF']]) && @sizeof($_SESSION[$_SERVER['PHP_SELF']]) != 0 ? true : false;
return is_array($_SESSION['persistent'][$_SERVER['PHP_SELF']]) && @sizeof($_SESSION['persistent'][$_SERVER['PHP_SELF']]) != 0 ? true : false;
break;
case 'load':
if (is_array($_SESSION[$_SERVER['PHP_SELF']]) && @sizeof($_SESSION[$_SERVER['PHP_SELF']]) != 0) {
foreach ($_SESSION[$_SERVER['PHP_SELF']] as $key => $value) {
// $array is expected to be the name of the array to create containing the key / value pairs
if ($array && !is_array($array)) {
global $$array;
}
if (is_array($_SESSION['persistent'][$_SERVER['PHP_SELF']]) && @sizeof($_SESSION['persistent'][$_SERVER['PHP_SELF']]) != 0) {
foreach ($_SESSION['persistent'][$_SERVER['PHP_SELF']] as $key => $value) {
if ($key != 'XID' && $key != 'ACT' && $key != 'RET') {
global $$key;
$$key = $value;
if ($array && !is_array($array)) {
$$array[$key] = $value;
}
else {
global $$key;
$$key = $value;
}
}
}
global $unsaved;
@@ -2155,15 +2171,25 @@ function number_pad($number,$n) {
}
break;
case 'view':
if (is_array($_SESSION[$_SERVER['PHP_SELF']]) && @sizeof($_SESSION[$_SERVER['PHP_SELF']]) != 0) {
view_array($_SESSION[$_SERVER['PHP_SELF']], false);
if (is_array($_SESSION['persistent'][$_SERVER['PHP_SELF']]) && @sizeof($_SESSION['persistent'][$_SERVER['PHP_SELF']]) != 0) {
view_array($_SESSION['persistent'][$_SERVER['PHP_SELF']], false);
}
break;
case 'clear':
unset($_SESSION[$_SERVER['PHP_SELF']]);
unset($_SESSION['persistent'][$_SERVER['PHP_SELF']]);
break;
}
}
}
//add alternative array_key_first for older verisons of PHP
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return NULL;
}
}
?>
+42 -6
View File
File diff suppressed because one or more lines are too long
+14 -15
View File
@@ -246,15 +246,12 @@ if ($db_type == "mysql") {
if ($db_type == "pgsql") {
//database connection
try {
if (isset($db_secure)) {
$dbissecure = $db_secure;
}
else {
$dbissecure = false;
if (!isset($db_secure)) {
$db_secure = false;
}
if (strlen($db_host) > 0) {
if (strlen($db_port) == 0) { $db_port = "5432"; }
if ($dbissecure == true) {
if ($db_secure == true) {
$db = new PDO("pgsql:host=$db_host port=$db_port dbname=$db_name user=$db_username password=$db_password sslmode=verify-ca sslrootcert=$db_cert_authority");
}
else {
@@ -304,18 +301,20 @@ if ($db_type == "pgsql") {
unset($result);
}
if (is_array($domains)) {
if (is_array($domains)) {
foreach($domains as $row) {
if (count($domains) == 1) {
$_SESSION["domain_uuid"] = $row["domain_uuid"];
$_SESSION["domain_name"] = $row['domain_name'];
}
else {
if ($row['domain_name'] == $domain_array[0] || $row['domain_name'] == 'www.'.$domain_array[0]) {
if (!isset($_SESSION['username'])) {
if (count($domains) == 1) {
$_SESSION["domain_uuid"] = $row["domain_uuid"];
$_SESSION["domain_name"] = $row["domain_name"];
$_SESSION["domain_name"] = $row['domain_name'];
}
}
else {
if ($row['domain_name'] == $domain_array[0] || $row['domain_name'] == 'www.'.$domain_array[0]) {
$_SESSION["domain_uuid"] = $row["domain_uuid"];
$_SESSION["domain_name"] = $row["domain_name"];
}
}
}
$_SESSION['domains'][$row['domain_uuid']] = $row;
}
unset($domains, $prep_statement);
+4 -1
View File
@@ -72,11 +72,14 @@
require_once "resources/functions.php";
if ($config_exists) {
require "resources/pdo.php";
require_once "resources/switch.php";
if (file_exists($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/resources/switch.php")) {
require_once "resources/switch.php";
}
}
//change language on the fly - for translate tool (if available)
if (isset($_REQUEST['view_lang_code']) && ($_REQUEST['view_lang_code']) != '') {
$_SESSION['domain']['language']['code'] = $_REQUEST['view_lang_code'];
}
?>
+79 -80
View File
@@ -432,97 +432,96 @@ function outbound_route_to_bridge($domain_uuid, $destination_number, array $chan
$hostname = 'unknown';
}
$sql = "select * from v_dialplans ";
if (is_uuid($domain_uuid)) {
$sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) ";
}
else {
$sql .= "where (domain_uuid is null) ";
}
$sql .= "and (hostname = :hostname or hostname is null) ";
$sql .= "and app_uuid = '8c914ec3-9fc0-8ab5-4cda-6c9288bdc9a3' ";
$sql .= "and dialplan_enabled = 'true' ";
$sql .= "order by dialplan_order asc ";
$sql = "select d.dialplan_uuid, ";
$sql .= "d.dialplan_name, ";
$sql .= "dd.dialplan_detail_uuid, ";
$sql .= "dd.dialplan_detail_tag, ";
$sql .= "dd.dialplan_detail_type, ";
$sql .= "dd.dialplan_detail_data , ";
$sql .= "d.dialplan_continue ";
$sql .= "from v_dialplans d, v_dialplan_details dd ";
$sql .= "where d.dialplan_uuid = dd.dialplan_uuid ";
if (is_uuid($domain_uuid)) {
$sql .= "and (d.domain_uuid = :domain_uuid or d.domain_uuid is null) ";
$parameters['domain_uuid'] = $domain_uuid;
}
else {
$sql .= "and (d.domain_uuid is null) ";
}
$sql .= "and (hostname = :hostname or hostname is null) ";
$sql .= "and d.app_uuid = '8c914ec3-9fc0-8ab5-4cda-6c9288bdc9a3' ";
$sql .= "and d.dialplan_enabled = 'true' ";
$sql .= "order by d.domain_uuid, d.dialplan_order, dd.dialplan_detail_order ";
$parameters['hostname'] = $hostname;
$database = new database;
$result = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
if (is_array($result) && @sizeof($result) != 0) {
$x = 0;
foreach ($result as &$row) {
//set as variables
$dialplan_uuid = $row['dialplan_uuid'];
$dialplan_detail_tag = $row["dialplan_detail_tag"];
$dialplan_detail_type = $row['dialplan_detail_type'];
$dialplan_continue = $row['dialplan_continue'];
//get the extension number using the dialplan_uuid
$sql = "select * ";
$sql .= "from v_dialplan_details ";
$sql .= "where dialplan_uuid = :dialplan_uuid ";
$sql .= "order by dialplan_detail_order asc ";
$parameters['dialplan_uuid'] = $dialplan_uuid;
$database = new database;
$sub_result = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
$condition_match = false;
if (is_array($sub_result) && @sizeof($sub_result) != 0) {
foreach ($sub_result as &$sub_row) {
if ($sub_row['dialplan_detail_tag'] == "condition") {
if ($sub_row['dialplan_detail_type'] == "destination_number") {
$pattern = '/'.$sub_row['dialplan_detail_data'].'/';
preg_match($pattern, $destination_number, $matches, PREG_OFFSET_CAPTURE);
if (count($matches) == 0) {
$condition_match[] = 'false';
}
else {
$condition_match[] = 'true';
$regex_match_1 = $matches[1][0];
$regex_match_2 = $matches[2][0];
$regex_match_3 = $matches[3][0];
$regex_match_4 = $matches[4][0];
$regex_match_5 = $matches[5][0];
}
}
elseif ($sub_row['dialplan_detail_type'] == "\${toll_allow}") {
$pattern = '/'.$sub_row['dialplan_detail_data'].'/';
preg_match($pattern, $channel_variables['toll_allow'], $matches, PREG_OFFSET_CAPTURE);
if (count($matches) == 0) {
$condition_match[] = 'false';
}
else {
$condition_match[] = 'true';
}
}
}
}
}
if (!in_array('false', $condition_match)) {
$x = 0;
foreach ($sub_result as &$sub_row) {
$dialplan_detail_data = $sub_row['dialplan_detail_data'];
if ($sub_row['dialplan_detail_tag'] == "action" && $sub_row['dialplan_detail_type'] == "bridge" && $dialplan_detail_data != "\${enum_auto_route}") {
$dialplan_detail_data = str_replace("\$1", $regex_match_1, $dialplan_detail_data);
$dialplan_detail_data = str_replace("\$2", $regex_match_2, $dialplan_detail_data);
$dialplan_detail_data = str_replace("\$3", $regex_match_3, $dialplan_detail_data);
$dialplan_detail_data = str_replace("\$4", $regex_match_4, $dialplan_detail_data);
$dialplan_detail_data = str_replace("\$5", $regex_match_5, $dialplan_detail_data);
$bridge_array[$x] = $dialplan_detail_data;
$x++;
if ($dialplan_continue == "false") {
break 2;
}
}
}
}
$dialplan_uuid = $row["dialplan_uuid"];
$dialplan_detail_uuid = $row["dialplan_detail_uuid"];
$outbound_routes[$dialplan_uuid][$dialplan_detail_uuid]["dialplan_detail_tag"] = $row["dialplan_detail_tag"];
$outbound_routes[$dialplan_uuid][$dialplan_detail_uuid]["dialplan_detail_type"] = $row["dialplan_detail_type"];
$outbound_routes[$dialplan_uuid][$dialplan_detail_uuid]["dialplan_detail_data"] = $row["dialplan_detail_data"];
$outbound_routes[$dialplan_uuid]["dialplan_continue"] = $row["dialplan_continue"];
}
}
if (is_array($outbound_routes) && @sizeof($outbound_routes) != 0) {
$x = 0;
foreach ($outbound_routes as &$dialplan) {
$condition_match = false;
foreach ($dialplan as &$dialplan_details) {
if ($dialplan_details['dialplan_detail_tag'] == "condition") {
if ($dialplan_details['dialplan_detail_type'] == "destination_number") {
$pattern = '/'.$dialplan_details['dialplan_detail_data'].'/';
preg_match($pattern, $destination_number, $matches, PREG_OFFSET_CAPTURE);
if (count($matches) == 0) {
$condition_match[] = 'false';
}
else {
$condition_match[] = 'true';
$regex_match_1 = $matches[1][0];
$regex_match_2 = $matches[2][0];
$regex_match_3 = $matches[3][0];
$regex_match_4 = $matches[4][0];
$regex_match_5 = $matches[5][0];
}
}
elseif ($dialplan_details['dialplan_detail_type'] == "\${toll_allow}") {
$pattern = '/'.$dialplan_details['dialplan_detail_data'].'/';
preg_match($pattern, $channel_variables['toll_allow'], $matches, PREG_OFFSET_CAPTURE);
if (count($matches) == 0) {
$condition_match[] = 'false';
}
else {
$condition_match[] = 'true';
}
}
}
}
if (!in_array('false', $condition_match)) {
foreach ($dialplan as &$dialplan_details) {
$dialplan_detail_data = $dialplan_details['dialplan_detail_data'];
if ($dialplan_details['dialplan_detail_tag'] == "action" && $dialplan_details['dialplan_detail_type'] == "bridge" && $dialplan_detail_data != "\${enum_auto_route}") {
$dialplan_detail_data = str_replace("\$1", $regex_match_1, $dialplan_detail_data);
$dialplan_detail_data = str_replace("\$2", $regex_match_2, $dialplan_detail_data);
$dialplan_detail_data = str_replace("\$3", $regex_match_3, $dialplan_detail_data);
$dialplan_detail_data = str_replace("\$4", $regex_match_4, $dialplan_detail_data);
$dialplan_detail_data = str_replace("\$5", $regex_match_5, $dialplan_detail_data);
$bridge_array[$x] = $dialplan_detail_data;
$x++;
}
}
if ($dialplan["dialplan_continue"] == "false") {
break;
}
}
}
}
unset($result, $row);
return $bridge_array;
}
//$destination_number = '1231234';
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<include>
<context name="{v_domain}">
<X-PRE-PROCESS cmd="include" data="{v_domain}/*.xml"/>
</context>
</include>
@@ -1,77 +0,0 @@
<include>
<X-PRE-PROCESS cmd="set" data="AT_EPENT1=0 0 0 -1 -1 0 -1 0 -1 -1 0 -1"/>
<X-PRE-PROCESS cmd="set" data="AT_EPENT2=1 1 1 -1 -1 1 -1 1 -1 -1 1 -1"/>
<X-PRE-PROCESS cmd="set" data="AT_CPENT1=0 -1 -1 0 -1 0 0 0 -1 -1 0 -1"/>
<X-PRE-PROCESS cmd="set" data="AT_CPENT2=1 -1 -1 1 -1 1 1 1 -1 -1 1 -1"/>
<X-PRE-PROCESS cmd="set" data="AT_CMAJ1=0 -1 0 0 -1 0 -1 0 0 -1 0 -1"/>
<X-PRE-PROCESS cmd="set" data="AT_CMAJ2=1 -1 1 1 -1 1 -1 1 1 -1 1 -1"/>
<X-PRE-PROCESS cmd="set" data="AT_BBLUES=1 -1 1 -1 -1 1 -1 1 1 1 -1 -1"/>
<X-PRE-PROCESS cmd="set" data="ATGPENT2=-1 1 -1 1 -1 1 -1 -1 1 -1 1 -1"/>
<extension name="101">
<condition field="destination_number" expression="^101$">
<!-- AUTOTALENT DEFAULTS -->
<!--
<action application="set" data="AT_TUNE=440"/>
<action application="set" data="AT_FIXED=0"/>
<action application="set" data="AT_PULL=0"/>
<action application="set" data="AT_A=0"/>
<action application="set" data="AT_Bb=-1"/>
<action application="set" data="AT_B=0"/>
<action application="set" data="AT_C=0"/>
<action application="set" data="AT_Db=-1"/>
<action application="set" data="AT_D=0"/>
<action application="set" data="AT_Eb=-1"/>
<action application="set" data="AT_E=0"/>
<action application="set" data="AT_F=0"/>
<action application="set" data="AT_Gb=-1"/>
<action application="set" data="AT_G=0"/>
<action application="set" data="AT_Ab=-1"/>
<action application="set" data="AT_AMOUNT=1"/>
<action application="set" data="AT_SMOOTH=0"/>
<action application="set" data="AT_SHIFT=0"/>
<action application="set" data="AT_OUTSCALE=0"/>
<action application="set" data="AT_LFODEPTH=0"/>
<action application="set" data="AT_LFORATE=5"/>
<action application="set" data="AT_LFOSHAPE=0"/>
<action application="set" data="AT_LFOSYMM=0"/>
<action application="set" data="AT_LFOQUANT=0"/>
<action application="set" data="AT_FCORR=0"/>
<action application="set" data="AT_FWARP=0"/>
<action application="set" data="AT_MIX=1"/>
-->
<action application="set" data="AT_TUNE=440"/>
<action application="set" data="AT_FIXED=0"/>
<action application="set" data="AT_PULL=0"/>
<action application="set" data="AT_AMOUNT=1"/>
<action application="set" data="AT_SMOOTH=0"/>
<action application="set" data="AT_SHIFT=1"/>
<action application="set" data="AT_OUTSCALE=0"/>
<action application="set" data="AT_LFODEPTH=0"/>
<action application="set" data="AT_LFORATE=5"/>
<action application="set" data="AT_LFOSHAPE=0"/>
<action application="set" data="AT_LFOSYMM=0"/>
<action application="set" data="AT_LFOQUANT=0"/>
<action application="set" data="AT_FCORR=0"/>
<action application="set" data="AT_FWARP=0"/>
<action application="set" data="AT_MIX=1"/>
<!-- you have to download the ladspa package and the desired plugins from their desired site -->
<action application="set"><![CDATA[ladspa_params=${AT_TUNE} ${AT_FIXED} ${AT_PULL} ${AT_EPENT2} ${AT_AMOUNT} ${AT_SMOOTH} ${AT_SHIFT} ${AT_OUTSCALE} ${AT_LFODEPTH} ${AT_LFORATE} ${AT_LFOSHAPE} ${AT_LFOSYMM} ${AT_LFOQUANT} ${AT_FCORR} ${AT_FWARP} ${AT_MIX}]]></action>
<action application="ladspa_run" data="r|autotalent||${ladspa_params}"/>
<action application="ladspa_run" data="r|tap_chorusflanger||"/>
<action application="ladspa_run" data="r|phasers_1217.so|autoPhaser|"/>
<action application="bridge" data="sofia/internal/888@conference.freeswitch.org"/>
</condition>
</extension>
</include>
@@ -1,9 +0,0 @@
<include>
<extension name="pizza_demo">
<condition field="destination_number" expression="^(pizza|74992)$"/>
<condition field="${module_exists(mod_spidermonkey)}" expression="true"/>
<condition field="${module_exists(mod_pocketsphinx)}" expression="true">
<action application="javascript" data="ps_pizza.js"/>
</condition>
</extension>
</include>
@@ -1,32 +0,0 @@
<include>
<extension name="Talking Clock Time" ><!--e.g. 10:56pm-->
<condition field="destination_number" expression="^9170$">
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="say" data="en CURRENT_TIME pronounced
${strepoch()}"/>
<action application="hangup"/>
</condition>
</extension>
<extension name="Talking Clock Date" ><!--e.g. March 8, 2011-->
<condition field="destination_number" expression="^9171$">
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="say" data="en CURRENT_DATE pronounced
${strepoch()}"/>
<action application="hangup"/>
</condition>
</extension>
<extension name="Talking Clock Date and Time" ><!--e.g. March 8, 2011
10:56pm-->
<condition field="destination_number" expression="^9172$">
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="say" data="en CURRENT_DATE_TIME pronounced
${strepoch()}"/>
<action application="hangup"/>
</condition>
</extension>
</include>
@@ -1,30 +0,0 @@
<include>
<extension name="local.example.com">
<condition field="${toll_allow}" expression="local"/>
<condition field="destination_number" expression="^(\d{7})$">
<action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
<action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
<action application="bridge" data="sofia/gateway/${default_gateway}/1${default_areacode}$1"/>
</condition>
</extension>
<extension name="domestic.example.com">
<condition field="${toll_allow}" expression="domestic"/>
<condition field="destination_number" expression="^(\d{11})$">
<action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
<action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
<action application="bridge" data="sofia/gateway/${default_gateway}/$1"/>
</condition>
</extension>
<extension name="international.example.com">
<condition field="${toll_allow}" expression="international"/>
<condition field="destination_number" expression="^(011\d+)$">
<action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
<action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
<action application="bridge" data="sofia/gateway/${default_gateway}/$1"/>
</condition>
</extension>
</include>
@@ -1,67 +0,0 @@
<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
<include>
<context name="features">
<!-- In call Transfer for phones without a transfer button -->
<extension name="dx">
<condition field="destination_number" expression="^dx$">
<action application="answer"/>
<action application="read" data="11 11 'tone_stream://%(10000,0,350,440)' digits 5000 #"/>
<action application="execute_extension" data="is_transfer XML features"/>
</condition>
</extension>
<extension name="att_xfer">
<condition field="destination_number" expression="^att_xfer$">
<action application="read" data="3 4 'tone_stream://%(10000,0,350,440)' digits 30000 #"/>
<action application="set" data="origination_cancel_key=#"/>
<action application="att_xfer" data="user/${digits}@$${domain}"/>
</condition>
</extension>
<extension name="is_transfer">
<condition field="destination_number" expression="^is_transfer$"/>
<condition field="${digits}" expression="^(\d+)$">
<action application="transfer" data="-bleg ${digits} XML default"/>
<anti-action application="eval" data="cancel transfer"/>
</condition>
</extension>
<!-- Used to transfer both legs into a conference -->
<extension name="cf">
<condition field="destination_number" expression="^cf$">
<action application="answer"/>
<action application="transfer" data="-both 30${dialed_extension:2} XML default"/>
</condition>
</extension>
<extension name="please_hold">
<condition field="destination_number" expression="^(10[01][0-9])$">
<action application="set" data="transfer_ringback=$${hold_music}"/>
<action application="answer"/>
<action application="sleep" data="1500"/>
<action application="playback" data="ivr/ivr-hold_connect_call.wav"/>
<action application="transfer" data="$1 XML default"/>
</condition>
</extension>
<extension name="is_zrtp_secure" continue="true">
<condition field="${zrtp_secure_media_confirmed}" expression="^true$">
<action application="sleep" data="1000"/>
<action application="playback" data="misc/call_secured.wav"/>
<anti-action application="eval" data="not_secure"/>
</condition>
</extension>
<extension name="is_secure" continue="true">
<!-- Only Truly consider it secure if its TLS and SRTP -->
<condition field="${sip_via_protocol}" expression="tls"/>
<condition field="${sip_secure_media_confirmed}" expression="^true$">
<action application="sleep" data="1000"/>
<action application="playback" data="misc/call_secured.wav"/>
<anti-action application="eval" data="not_secure"/>
</condition>
</extension>
</context>
</include>
@@ -1,71 +0,0 @@
<!--
NOTICE:
This context is usually accessed via the external sip profile listening on port 5080.
It is recommended to have separate inbound and outbound contexts. Not only for security
but clearing up why you would need to do such a thing. You don't want outside un-authenticated
callers hitting your default context which allows dialing calls thru your providers and results
in Toll Fraud.
-->
<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
<include>
<context name="public">
<extension name="unloop">
<condition field="${unroll_loops}" expression="^true$"/>
<condition field="${sip_looped_call}" expression="^true$">
<action application="deflect" data="${destination_number}"/>
</condition>
</extension>
<!--
Tag anything pass thru here as an outside_call so you can make sure not
to create any routing loops based on the conditions that it came from
the outside of the switch.
-->
<extension name="outside_call" continue="true">
<condition>
<action application="set" data="outside_call=true"/>
<action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
</condition>
</extension>
<extension name="call_debug" continue="true">
<condition field="${call_debug}" expression="^true$" break="never">
<action application="info"/>
</condition>
</extension>
<!--
<extension name="public_extensions">
<condition field="destination_number" expression="^(10[01][0-9])$">
<action application="transfer" data="$1 XML default"/>
</condition>
</extension>
-->
<!--
You can place files in the public directory to get included.
-->
<X-PRE-PROCESS cmd="include" data="public/*.xml"/>
<!--
If you have made it this far lets challenge the caller and if they authenticate
lets try what they dialed in the default context. (commented out by default)
-->
<!--
<extension name="check_auth" continue="true">
<condition field="${sip_authorized}" expression="^true$" break="never">
<anti-action application="respond" data="407"/>
</condition>
</extension>
<extension name="transfer_to_default">
<condition>
<action application="transfer" data="${destination_number} XML default"/>
</condition>
</extension>
-->
</context>
</include>
@@ -1,18 +0,0 @@
<include>
<extension name="public_did">
<condition field="destination_number" expression="^(5551212)$">
<!--
If you're hosting multiple domains you will want to set the
target_domain on these calls so they hit the proper domain after you
transfer the caller into the default context.
$${domain} is the default domain set from vars.xml but you can set it
to any domain you have setup in your user directory.
-->
<action application="set" data="domain_name=$${domain}"/>
<!-- This example maps the DID 5551212 to ring 1000 in the default context -->
<action application="transfer" data="1000 XML default"/>
</condition>
</extension>
</include>
@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
NOTICE:
This context is used for skinny to match dialed number
The special applications:
- skinny-process tells skinny to process the call (route, set call forwarding, ...)
- skinny-drop tells skinny to drop the call
- skinny-wait tells skinny to wait 'data' seconds for more numbers before drop
-->
<!-- http://wiki.freeswitch.org/wiki/Mod_skinny -->
<include>
<context name="skinny-patterns">
<!--
Wait 10 seconds for another digit by default
-->
<extension name="Default">
<condition>
<action application="skinny-wait" data="10"/>
</condition>
</extension>
<!--
You can place files in the skinny-patterns directory to get included.
-->
<X-PRE-PROCESS cmd="include" data="skinny-patterns/*.xml"/>
</context>
</include>
@@ -1,8 +0,0 @@
<include>
<extension name="Demo">
<condition field="destination_number" expression="^(9[0-9]{3})$">
<action application="skinny-process"/>
</condition>
</extension>
</include>
@@ -1,13 +0,0 @@
<include>
<extension name="Local_Extension">
<condition field="destination_number" expression="^(10[01][0-9])$">
<action application="skinny-process"/>
</condition>
</extension>
<extension name="Local_Extension_Skinny">
<condition field="destination_number" expression="^(11[01][0-9])$">
<action application="skinny-process"/>
</condition>
</extension>
</include>
@@ -1,8 +0,0 @@
<include>
<extension name="External">
<condition field="destination_number" expression="^(0[0-9]{10,})$">
<action application="skinny-process"/>
</condition>
</extension>
</include>
@@ -1,9 +0,0 @@
<include>
<!-- drop long dialed number -->
<extension name="Default_Drop">
<condition field="destination_number" expression="^(.{14,})$">
<action application="skinny-drop"/>
</condition>
</extension>
</include>
@@ -1,78 +0,0 @@
<!--
NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
FreeSWITCH works off the concept of users and domains just like email.
You have users that are in domains for example 1000@domain.com.
When freeswitch gets a register packet it looks for the user in the directory
based on the from or to domain in the packet depending on how your sofia profile
is configured. Out of the box the default domain will be the IP address of the
machine running FreeSWITCH. This IP can be found by typing "sofia status" at the
CLI. You will register your phones to the IP and not the hostname by default.
If you wish to register using the domain please open vars.xml in the root conf
directory and set the default domain to the hostname you desire. Then you would
use the domain name in the client instead of the IP address to register
with FreeSWITCH.
NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
-->
<include>
<!--the domain or ip (the right hand side of the @ in the addr-->
<domain name="$${domain}">
<params>
<param name="dial-string" value="{sip_invite_domain=${dialed_domain},presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
</params>
<variables>
<variable name="record_stereo" value="true"/>
<variable name="default_gateway" value="$${default_provider}"/>
<variable name="default_areacode" value="$${default_areacode}"/>
<variable name="transfer_fallback_extension" value="operator"/>
</variables>
<groups>
<group name="default">
<users>
<X-PRE-PROCESS cmd="include" data="default/*.xml"/>
</users>
</group>
<group name="sales">
<users>
<!--
type="pointer" is a pointer so you can have the
same user in multiple groups. It basically means
to keep searching for the user in the directory.
-->
<user id="1000" type="pointer"/>
<user id="1001" type="pointer"/>
<user id="1002" type="pointer"/>
<user id="1003" type="pointer"/>
<user id="1004" type="pointer"/>
</users>
</group>
<group name="billing">
<users>
<user id="1005" type="pointer"/>
<user id="1006" type="pointer"/>
<user id="1007" type="pointer"/>
<user id="1008" type="pointer"/>
<user id="1009" type="pointer"/>
</users>
</group>
<group name="support">
<users>
<user id="1010" type="pointer"/>
<user id="1011" type="pointer"/>
<user id="1012" type="pointer"/>
<user id="1013" type="pointer"/>
<user id="1014" type="pointer"/>
</users>
</group>
</groups>
</domain>
</include>
@@ -1,92 +0,0 @@
<include>
<!--
ipauth if you have an cidr= in the user attributes ie cidr="1.2.3.4/32"
see <node type="allow" domain="$${domain}"/> in default acl.conf.xml
-->
<user id="brian" cidr="192.0.2.0/24">
<!-- Outbound Registrations Related to this user -->
<gateways>
<!--<gateway name="asterlink.com">-->
<!--/// account username *required* ///-->
<!--<param name="username" value="cluecon"/>-->
<!--/// auth realm: *optional* same as gateway name, if blank ///-->
<!--<param name="realm" value="asterlink.com"/>-->
<!--/// username to use in from: *optional* same as username, if blank ///-->
<!--<param name="from-user" value="cluecon"/>-->
<!--/// domain to use in from: *optional* same as realm, if blank ///-->
<!--<param name="from-domain" value="asterlink.com"/>-->
<!--/// account password *required* ///-->
<!--<param name="password" value="2007"/>-->
<!--/// replace the INVITE from user with the channel's caller-id ///-->
<!--<param name="caller-id-in-from" value="false"/>-->
<!--/// extension for inbound calls: *optional* same as username, if blank ///-->
<!--<param name="extension" value="cluecon"/>-->
<!--/// proxy host: *optional* same as realm, if blank ///-->
<!--<param name="proxy" value="asterlink.com"/>-->
<!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
<!--<param name="register-proxy" value="mysbc.com"/>-->
<!--/// expire in seconds: *optional* 3600, if blank ///-->
<!--<param name="expire-seconds" value="60"/>-->
<!--/// do not register ///-->
<!--<param name="register" value="false"/>-->
<!-- which transport to use for register -->
<!--<param name="register-transport" value="udp"/>-->
<!--How many seconds before a retry when a failure or timeout occurs -->
<!--<param name="retry-seconds" value="30"/>-->
<!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
<!--<param name="caller-id-in-from" value="false"/>-->
<!--extra sip params to send in the contact-->
<!--<param name="contact-params" value="tport=tcp"/>-->
<!--send an options ping every x seconds, failure will unregister and/or mark it down-->
<!--<param name="ping" value="25"/>-->
<!--</gateway>-->
</gateways>
<params>
<!-- omit password for authless registration -->
<param name="password" value="$${default_password}"/>
<param name="vm-password" value="9999"/><!--if vm-password is omitted password param is used-->
<!--<param name="email-addr" value="me@mydomain.com"/>-->
<!--<param name="vm-delete-file" value="true"/>-->
<!--<param name="vm-attach-file" value="true"/>-->
<!--<param name="vm-mailto" value="me@mydomain.com"/>-->
<!--<param name="vm-email-all-messages" value="true"/>-->
<!-- optionally use this instead if you want to store the hash of user:domain:pass-->
<!--<param name="a1-hash" value="c6440e5de50b403206989679159de89a"/>-->
<!-- What this user is allowed to acces -->
<!--<param name="http-allowed-api" value="jsapi,voicemail,status"/> -->
</params>
<variables>
<!--all variables here will be set on all inbound calls that originate from this user -->
<variable name="user_context" value="default"/>
<variable name="effective_caller_id_name" value="Brian West"/>
<variable name="effective_caller_id_number" value="1000"/>
<!-- Don't write a CDR if this is false valid values are: true, false, a_leg and b_leg -->
<variable name="process_cdr" value="true"/>
<!-- sip_secure_media will offer mandatory SRTP on invite AES_CM_128_HMAC_SHA1_32, AES_CM_128_HMAC_SHA1_80 or true-->
<variable name="sip_secure_media" value="true"/>
<!-- limit the max number of outgoing calls for this user -->
<!--<variable name="max_calls" value="2"/>-->
<!-- send presence information if FS is configured to do so -->
<!--<variable name="presence_id" value="1000@$${domain}"/>-->
<!-- set these to take advantage of a dialplan localized to this user -->
<!--<variable name="numbering_plan" value="US"/>-->
<!--<variable name="default_area_code" value="434"/>-->
<!--<variable name="default_gateway" value="asterlink.com"/>-->
<!--
NDLB-connectile-dysfunction - Rewrite contact ip and port
NDLB-tls-connectile-dysfunction - Rewrite contact port only.
-->
<!--<variable name="sip-force-contact" value="NDLB-connectile-dysfunction"/>-->
<!--<variable name="sip-force-expires" value="10"/>-->
<!--<variable name="sip-register-gateway" value="cluecon.com"/>-->
<!-- Set the file format for a specific user -->
<!--<variable name="vm_message_ext" value="mp3"/> -->
</variables>
<vcard>
<!-- insert optional compliant vcard xml here-->
</vcard>
</user>
</include>
@@ -1,22 +0,0 @@
<include>
<user id="default"> <!--if id is numeric mailbox param is not necessary-->
<!--
ATTENTION PLEASE READ THIS...
Let it be known that this user can register without a password but since we do not assign
this user a user_context and we don't authenticate this user they will be put in context 'public'.
This isn't a security issue as the endpoint would be put into the same context 'public' as the
sofia profile that starts on 5080 by default. If you're paranoid just remove this file and
remove the external profile also.
-->
<variables>
<!--all variables here will be set on all inbound calls that originate from this user -->
<!-- set these to take advantage of a dialplan localized to this user -->
<variable name="numbering_plan" value="$${default_country}"/>
<!--<variable name="default_areacode" value="$${default_areacode}"/>-->
<!--<variable name="default_gateway" value="$${default_provider}"/>-->
</variables>
</user>
</include>
@@ -1,26 +0,0 @@
<!--
Shell provider account should work with most providers.
-->
<include>
<user id="$${default_provider}">
<gateways>
<gateway name="$${default_provider}">
<param name="username" value="$${default_provider_username}"/>
<param name="password" value="$${default_provider_password}"/>
<param name="from-user" value="$${default_provider_username}"/>
<param name="from-domain" value="$${default_provider_from_domain}"/>
<param name="expire-seconds" value="600"/>
<param name="register" value="$${default_provider_register}"/>
<param name="retry-seconds" value="30"/>
<param name="extension" value="$${default_provider_contact}"/>
<!--<param name="contact-params" value="domain_name=$${domain}"/>-->
<param name="context" value="public"/>
</gateway>
</gateways>
<params>
<param name="password" value="$${default_provider_password}"/>
</params>
</user>
</include>
@@ -1,35 +0,0 @@
<include>
<user id="SEP001120AABBCC">
<params>
<!-- for devices requesting firmware via SCCP, like ATA186
<param name="skinny-firmware-version" value="ATA030101SCCP04"
<param name="skinny-soft-key-set-set" value="default"
-->
<param name="foo" value="bar"/>
</params>
<skinny>
<buttons>
<!--
position: 1..
type: one of line, speed-dial
label: button label
-->
<!--
value is the directory number (or user)
caller-name is shown to the calling party during call
-->
<button position="1" type="Line" label="Line 1" value="1101" caller-name="Calling as 1101"/>
<button position="3" type="Line" label="Shared Line 10" value="1110" caller-name="Calling as 1110"/>
<!--
value is the directory number to call
-->
<button position="5" type="SpeedDial" label="Call 1001" value="1001"/>
<!--
value is the URL
-->
<button position="6" type="ServiceUrl" label="Some URL" value="http://phone-xml.berbee.com/menu.xml"/>
</buttons>
</skinny>
</user>
</include>
@@ -84,7 +84,7 @@
<!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
<param name="tls-passphrase" value=""/>
<!-- Verify the date on TLS certificates -->
<param name="tls-verify-date" value="true"/>
<param name="tls-verify-date" value="false"/>
<!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
<!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
<param name="tls-verify-policy" value="all|subjects_all" enabled="false"/>
@@ -2,7 +2,6 @@
<!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
<!-- This profile is only for outbound registrations to providers -->
<gateways>
<X-PRE-PROCESS cmd="include" data="external/*.xml"/>
</gateways>
<aliases>
@@ -90,7 +89,7 @@
<!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
<param name="tls-passphrase" value=""/>
<!-- Verify the date on TLS certificates -->
<param name="tls-verify-date" value="true"/>
<param name="tls-verify-date" value="false"/>
<!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
<!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
<param name="tls-verify-policy" value="all|subjects_all" enabled="false"/>
@@ -1,38 +0,0 @@
<include>
<!--<gateway name="asterlink.com">-->
<!--/// account username *required* ///-->
<!--<param name="username" value="cluecon"/>-->
<!--/// auth realm: *optional* same as gateway name, if blank ///-->
<!--<param name="realm" value="asterlink.com"/>-->
<!--/// username to use in from: *optional* same as username, if blank ///-->
<!--<param name="from-user" value="cluecon"/>-->
<!--/// domain to use in from: *optional* same as realm, if blank ///-->
<!--<param name="from-domain" value="asterlink.com"/>-->
<!--/// account password *required* ///-->
<!--<param name="password" value="2007"/>-->
<!--/// extension for inbound calls: *optional* same as username, if blank ///-->
<!--<param name="extension" value="cluecon"/>-->
<!--/// proxy host: *optional* same as realm, if blank ///-->
<!--<param name="proxy" value="asterlink.com"/>-->
<!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
<!--<param name="register-proxy" value="mysbc.com"/>-->
<!--/// expire in seconds: *optional* 3600, if blank ///-->
<!--<param name="expire-seconds" value="60"/>-->
<!--/// do not register ///-->
<!--<param name="register" value="false"/>-->
<!-- which transport to use for register -->
<!--<param name="register-transport" value="udp"/>-->
<!--How many seconds before a retry when a failure or timeout occurs -->
<!--<param name="retry-seconds" value="30"/>-->
<!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
<!--<param name="caller-id-in-from" value="false"/>-->
<!--extra sip params to send in the contact-->
<!--<param name="contact-params" value="tport=tcp"/>-->
<!--send an options ping every x seconds, failure will unregister and/or mark it down-->
<!--<param name="ping" value="25"/>-->
<!--</gateway>-->
<!--rfc5626 : Abilitazione rfc5626 ///-->
<!--<param name="rfc-5626" value="true"/>-->
<!--rfc5626 : extra sip params to send in the contact-->
<!--<param name="reg-id" value="1"/>-->
</include>
@@ -60,7 +60,7 @@
<!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
<param name="tls-passphrase" value=""/>
<!-- Verify the date on TLS certificates -->
<param name="tls-verify-date" value="true"/>
<param name="tls-verify-date" value="false"/>
<!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
<!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
<param name="tls-verify-policy" value="all|subjects_all" enabled="false"/>
@@ -16,7 +16,6 @@
<!-- Outbound Registrations -->
<gateways>
<X-PRE-PROCESS cmd="include" data="internal/*.xml"/>
</gateways>
<domains>
@@ -182,7 +181,7 @@
<!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
<param name="tls-passphrase" value=""/>
<!-- Verify the date on TLS certificates -->
<param name="tls-verify-date" value="true"/>
<param name="tls-verify-date" value="false"/>
<!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
<!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
<param name="tls-verify-policy" value="all|subjects_all" enabled="false"/>
@@ -1,37 +0,0 @@
<include>
<!--<gateway name="asterlink.com">-->
<!--/// account username *required* ///-->
<!--<param name="username" value="cluecon"/>-->
<!--/// auth realm: *optional* same as gateway name, if blank ///-->
<!--<param name="realm" value="asterlink.com"/>-->
<!--/// username to use in from: *optional* same as username, if blank ///-->
<!--<param name="from-user" value="cluecon"/>-->
<!--/// domain to use in from: *optional* same as realm, if blank ///-->
<!--<param name="from-domain" value="asterlink.com"/>-->
<!--/// account password *required* ///-->
<!--<param name="password" value="2007"/>-->
<!--/// extension for inbound calls: *optional* same as username, if blank ///-->
<!--<param name="extension" value="cluecon"/>-->
<!--/// proxy host: *optional* same as realm, if blank ///-->
<!--<param name="proxy" value="asterlink.com"/>-->
<!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
<!--<param name="register-proxy" value="mysbc.com"/>-->
<!--/// expire in seconds: *optional* 3600, if blank ///-->
<!--<param name="expire-seconds" value="60"/>-->
<!--/// do not register ///-->
<!--<param name="register" value="false"/>-->
<!-- which transport to use for register -->
<!--<param name="register-transport" value="udp"/>-->
<!--How many seconds before a retry when a failure or timeout occurs -->
<!--<param name="retry-seconds" value="30"/>-->
<!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
<!--<param name="caller-id-in-from" value="false"/>-->
<!--extra sip params to send in the contact-->
<!--<param name="contact-params" value="tport=tcp"/>-->
<!-- Put the extension in the contact -->
<!--<param name="extension-in-contact" value="true"/>-->
<!--send an options ping every x seconds, failure will unregister and/or mark it down-->
<!--<param name="ping" value="25"/>-->
<!--<param name="cid-type" value="rpid"/>-->
<!--</gateway>-->
</include>
File diff suppressed because it is too large Load Diff
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Template is optimized for firmware ver 2.2.10 and newer. Older firmware has incorrect tag names.-->
<sysConf>
<Version>2.0000000000</Version>
<net>
@@ -98,17 +99,21 @@
<RegisterUser>{$account.1.auth_id}</RegisterUser>
<RegisterPswd>{$account.1.password}</RegisterPswd>
<RegisterTTL>{$account.1.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.1.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.1.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.1.sip_port}</ProxyPort>
<ProxyUser>{$account.1.auth_id}</ProxyUser>
<ProxyPswd>{$account.1.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.1.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.1.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.1.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
@@ -165,7 +170,7 @@
<SignalPort>5060</SignalPort>
{if $account.1.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.1.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.1.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.1.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -206,6 +211,7 @@
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -245,6 +251,7 @@
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<line index="2">
<PhoneNumber>{$account.2.user_id}</PhoneNumber>
@@ -255,17 +262,21 @@
<RegisterUser>{$account.2.auth_id}</RegisterUser>
<RegisterPswd>{$account.2.password}</RegisterPswd>
<RegisterTTL>{$account.2.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.2.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.2.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.2.sip_port}</ProxyPort>
<ProxyUser>{$account.2.auth_id}</ProxyUser>
<ProxyPswd>{$account.2.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.2.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.2.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.2.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
@@ -322,7 +333,7 @@
<SignalPort>5060</SignalPort>
{if $account.2.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.2.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.2.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.2.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -363,6 +374,7 @@
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -402,6 +414,7 @@
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<line index="3">
<PhoneNumber>{$account.3.user_id}</PhoneNumber>
@@ -412,17 +425,21 @@
<RegisterUser>{$account.3.auth_id}</RegisterUser>
<RegisterPswd>{$account.3.password}</RegisterPswd>
<RegisterTTL>{$account.3.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.3.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.3.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.3.sip_port}</ProxyPort>
<ProxyUser>{$account.3.auth_id}</ProxyUser>
<ProxyPswd>{$account.3.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.3.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.3.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.3.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
@@ -479,7 +496,7 @@
<SignalPort>5060</SignalPort>
{if $account.3.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.3.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.3.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.3.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -520,6 +537,7 @@
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -559,6 +577,7 @@
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<line index="4">
<PhoneNumber>{$account.4.user_id}</PhoneNumber>
@@ -569,17 +588,21 @@
<RegisterUser>{$account.4.auth_id}</RegisterUser>
<RegisterPswd>{$account.4.password}</RegisterPswd>
<RegisterTTL>{$account.4.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.4.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.4.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.4.sip_port}</ProxyPort>
<ProxyUser>{$account.4.auth_id}</ProxyUser>
<ProxyPswd>{$account.4.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.4.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.4.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.4.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
@@ -636,7 +659,7 @@
<SignalPort>5060</SignalPort>
{if $account.4.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.4.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.4.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.4.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -677,6 +700,7 @@
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -716,6 +740,7 @@
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<p2p>
<SIPP2PEnableAutoAnswer>0</SIPP2PEnableAutoAnswer>
@@ -724,6 +749,7 @@
<SIPP2PSipInfoDtmfMode>0</SIPP2PSipInfoDtmfMode>
<SIPP2PEnablePreview>0</SIPP2PEnablePreview>
<SIPP2PPreviewMode>0</SIPP2PPreviewMode>
<SIPP2PUseVPN>1</SIPP2PUseVPN>
</p2p>
</sip>
<call>
@@ -799,6 +825,8 @@
<CallNumberFilter></CallNumberFilter>
<AutoResumeCurrent>0</AutoResumeCurrent>
<AlertTimeout>120</AlertTimeout>
<RingTimeout>120</RingTimeout>
<RingPriority>0</RingPriority>
</port>
<basic>
<DialbyPound>1</DialbyPound>
@@ -879,7 +907,7 @@
<CallLogDisplayType>0</CallLogDisplayType>
<EnableRecvSMS>1</EnableRecvSMS>
<EnableCallHistory>1</EnableCallHistory>
<LineDisplayFormat>$name@$protocol$instance</LineDisplayFormat>
<LineDisplayFormat>$name</LineDisplayFormat>
<EnableMWITone>0</EnableMWITone>
<AllPswdEncryption>0</AllPswdEncryption>
<SIPNotifyXML>1</SIPNotifyXML>
@@ -1252,6 +1280,7 @@
<cti>
<EnabledActiveUri>1</EnabledActiveUri>
<EnabledActionUrl>1</EnabledActionUrl>
<ActionUrlType>0</ActionUrlType>
<ActiveUriIP></ActiveUriIP>
<StartRebootUrl></StartRebootUrl>
<BootCompletedUrl></BootCompletedUrl>
@@ -1262,6 +1291,8 @@
<PhoneStateIdleUrl></PhoneStateIdleUrl>
<PhoneStateTalking></PhoneStateTalking>
<PhoneStateRinging></PhoneStateRinging>
<OnhookUri></OnhookUri>
<OffhookUrl></OffhookUrl>
<DNDOnUrl></DNDOnUrl>
<DNDOffUrl></DNDOffUrl>
<AlwaysFWDOnUrl></AlwaysFWDOnUrl>
@@ -1531,6 +1562,7 @@
<DHCPOption>66</DHCPOption>
<DHCPv6Option>0</DHCPv6Option>
<DhcpOption120>0</DhcpOption120>
<SaveDHCPOpion>0</SaveDHCPOpion>
</opt>
</ap>
<fwCheck>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Template is optimized for firmware ver 2.2.10 and newer. Older firmware has incorrect tag names.-->
<sysConf>
<Version>2.0000000000</Version>
<net>
@@ -11,7 +12,7 @@
<SecondaryDNS>{if isset($dns_server_secondary)}{$dns_server_secondary}{else}208.67.222.222{/if}</SecondaryDNS>
<EnableDHCP>1</EnableDHCP>
<DHCPAutoDNS>1</DHCPAutoDNS>
<DHCPAutoTime>1</DHCPAutoTime>
<DHCPOption100-101>1</DHCPOption100-101>
<UseVendorClassID>0</UseVendorClassID>
<VendorClassID>Fanvil X3U</VendorClassID>
@@ -43,11 +44,11 @@
<OpusPayloadType></OpusPayloadType>
<OpusSampleRate></OpusSampleRate>
<VAD></VAD>
<H264PayloadType></H264PayloadType>
<ResvAudioBand></ResvAudioBand>
<RTPInitialPort></RTPInitialPort>
<RTPPortQuantity></RTPPortQuantity>
<RTPKeepAlive></RTPKeepAlive>
<RTPRelay></RTPRelay>
<RTCPCNAMEUser></RTCPCNAMEUser>
<RTCPCNAMEHost></RTCPCNAMEHost>
<SelectYourTone>{if isset($fanvil_country_toneset)}{$fanvil_country_toneset}{else}11{/if}</SelectYourTone>
@@ -98,22 +99,25 @@
<RegisterUser>{$account.1.auth_id}</RegisterUser>
<RegisterPswd>{$account.1.password}</RegisterPswd>
<RegisterTTL>{$account.1.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.1.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.1.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.1.sip_port}</ProxyPort>
<ProxyUser>{$account.1.auth_id}</ProxyUser>
<ProxyPswd>{$account.1.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.1.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.1.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.1.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
<SignalRetryCounts>3</SignalRetryCounts>
<SignalCrypto>0</SignalCrypto>
<SigCryptoKey></SigCryptoKey>
<MediaCrypto>0</MediaCrypto>
<MedCryptoKey></MedCryptoKey>
@@ -147,7 +151,7 @@
<DTMFInfoMode>0</DTMFInfoMode>
<NATType>0</NATType>
<EnableRport>1</EnableRport>
<Subscribe>0</Subscribe>
<Subscribe>{if isset($account.1.user_id)}1{else}{/if}</Subscribe>
<SubExpire>{$account.1.register_expires}</SubExpire>
<SingleCodec>0</SingleCodec>
<CLIR>0</CLIR>
@@ -166,7 +170,7 @@
<SignalPort>5060</SignalPort>
{if $account.1.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.1.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.1.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.1.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -174,10 +178,11 @@
<UriEscaped>1</UriEscaped>
<ClicktoTalk>0</ClicktoTalk>
<MwiNo></MwiNo>
<MWINum></MWINum>
<MWINum>{if isset($account.1.user_id)}*97{else}{/if}</MWINum>
<ParkNo></ParkNo>
<CallParkNum></CallParkNum>
<RetrieveNum></RetrieveNum>
<RetrieveType>0</RetrieveType>
<HelpNo></HelpNo>
<MSRPHelpNum></MSRPHelpNum>
<UserIsPhone>0</UserIsPhone>
@@ -200,13 +205,14 @@
<SendANOffCode></SendANOffCode>
<CWOnCode></CWOnCode>
<CWOffCode></CWOffCode>
<VoiceCodecMap>OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VoiceCodecMap>PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VideoCodecMap>{if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if}</VideoCodecMap>
<BLFListUri></BLFListUri>
<BLFServer></BLFServer>
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -223,7 +229,7 @@
<UseTelCall>0</UseTelCall>
<EnablePreview>0</EnablePreview>
<PreviewMode>1</PreviewMode>
<TLSVersion>0</TLSVersion>
<TLSVersion>2</TLSVersion>
<CSTANumber></CSTANumber>
<EnableChgPort>0</EnableChgPort>
<VQName></VQName>
@@ -245,6 +251,8 @@
<SessionTimerT1>500</SessionTimerT1>
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<line index="2">
<PhoneNumber>{$account.2.user_id}</PhoneNumber>
@@ -255,22 +263,25 @@
<RegisterUser>{$account.2.auth_id}</RegisterUser>
<RegisterPswd>{$account.2.password}</RegisterPswd>
<RegisterTTL>{$account.2.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.2.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.2.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.2.sip_port}</ProxyPort>
<ProxyUser>{$account.2.auth_id}</ProxyUser>
<ProxyPswd>{$account.2.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.2.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.2.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.2.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
<SignalRetryCounts>3</SignalRetryCounts>
<SignalCrypto>0</SignalCrypto>
<SigCryptoKey></SigCryptoKey>
<MediaCrypto>0</MediaCrypto>
<MedCryptoKey></MedCryptoKey>
@@ -304,7 +315,7 @@
<DTMFInfoMode>0</DTMFInfoMode>
<NATType>0</NATType>
<EnableRport>1</EnableRport>
<Subscribe>0</Subscribe>
<Subscribe>{if isset($account.2.user_id)}1{else}{/if}</Subscribe>
<SubExpire>{$account.2.register_expires}</SubExpire>
<SingleCodec>0</SingleCodec>
<CLIR>0</CLIR>
@@ -323,7 +334,7 @@
<SignalPort>5060</SignalPort>
{if $account.2.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.2.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.2.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.2.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -331,10 +342,11 @@
<UriEscaped>1</UriEscaped>
<ClicktoTalk>0</ClicktoTalk>
<MwiNo></MwiNo>
<MWINum></MWINum>
<MWINum>{if isset($account.2.user_id)}*97{else}{/if}</MWINum>
<ParkNo></ParkNo>
<CallParkNum></CallParkNum>
<RetrieveNum></RetrieveNum>
<RetrieveType>0</RetrieveType>
<HelpNo></HelpNo>
<MSRPHelpNum></MSRPHelpNum>
<UserIsPhone>0</UserIsPhone>
@@ -357,13 +369,14 @@
<SendANOffCode></SendANOffCode>
<CWOnCode></CWOnCode>
<CWOffCode></CWOffCode>
<VoiceCodecMap>OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VoiceCodecMap>PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VideoCodecMap>{if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if}</VideoCodecMap>
<BLFListUri></BLFListUri>
<BLFServer></BLFServer>
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -380,7 +393,7 @@
<UseTelCall>0</UseTelCall>
<EnablePreview>0</EnablePreview>
<PreviewMode>1</PreviewMode>
<TLSVersion>0</TLSVersion>
<TLSVersion>2</TLSVersion>
<CSTANumber></CSTANumber>
<EnableChgPort>0</EnableChgPort>
<VQName></VQName>
@@ -402,6 +415,8 @@
<SessionTimerT1>500</SessionTimerT1>
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<line index="3">
<PhoneNumber>{$account.3.user_id}</PhoneNumber>
@@ -412,22 +427,25 @@
<RegisterUser>{$account.3.auth_id}</RegisterUser>
<RegisterPswd>{$account.3.password}</RegisterPswd>
<RegisterTTL>{$account.3.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.3.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.3.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.3.sip_port}</ProxyPort>
<ProxyUser>{$account.3.auth_id}</ProxyUser>
<ProxyPswd>{$account.3.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.3.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.3.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.3.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
<SignalRetryCounts>3</SignalRetryCounts>
<SignalCrypto>0</SignalCrypto>
<SigCryptoKey></SigCryptoKey>
<MediaCrypto>0</MediaCrypto>
<MedCryptoKey></MedCryptoKey>
@@ -461,7 +479,7 @@
<DTMFInfoMode>0</DTMFInfoMode>
<NATType>0</NATType>
<EnableRport>1</EnableRport>
<Subscribe>0</Subscribe>
<Subscribe>{if isset($account.3.user_id)}1{else}{/if}</Subscribe>
<SubExpire>{$account.3.register_expires}</SubExpire>
<SingleCodec>0</SingleCodec>
<CLIR>0</CLIR>
@@ -480,7 +498,7 @@
<SignalPort>5060</SignalPort>
{if $account.3.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.3.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.3.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.3.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -488,10 +506,11 @@
<UriEscaped>1</UriEscaped>
<ClicktoTalk>0</ClicktoTalk>
<MwiNo></MwiNo>
<MWINum></MWINum>
<MWINum>{if isset($account.3.user_id)}*97{else}{/if}</MWINum>
<ParkNo></ParkNo>
<CallParkNum></CallParkNum>
<RetrieveNum></RetrieveNum>
<RetrieveType>0</RetrieveType>
<HelpNo></HelpNo>
<MSRPHelpNum></MSRPHelpNum>
<UserIsPhone>0</UserIsPhone>
@@ -514,13 +533,14 @@
<SendANOffCode></SendANOffCode>
<CWOnCode></CWOnCode>
<CWOffCode></CWOffCode>
<VoiceCodecMap>OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VoiceCodecMap>PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VideoCodecMap>{if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if}</VideoCodecMap>
<BLFListUri></BLFListUri>
<BLFServer></BLFServer>
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -537,7 +557,7 @@
<UseTelCall>0</UseTelCall>
<EnablePreview>0</EnablePreview>
<PreviewMode>1</PreviewMode>
<TLSVersion>0</TLSVersion>
<TLSVersion>2</TLSVersion>
<CSTANumber></CSTANumber>
<EnableChgPort>0</EnableChgPort>
<VQName></VQName>
@@ -559,6 +579,8 @@
<SessionTimerT1>500</SessionTimerT1>
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<line index="4">
<PhoneNumber>{$account.4.user_id}</PhoneNumber>
@@ -569,22 +591,25 @@
<RegisterUser>{$account.4.auth_id}</RegisterUser>
<RegisterPswd>{$account.4.password}</RegisterPswd>
<RegisterTTL>{$account.4.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.4.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.4.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.4.sip_port}</ProxyPort>
<ProxyUser>{$account.4.auth_id}</ProxyUser>
<ProxyPswd>{$account.4.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.4.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.4.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.4.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
<SignalRetryCounts>3</SignalRetryCounts>
<SignalCrypto>0</SignalCrypto>
<SigCryptoKey></SigCryptoKey>
<MediaCrypto>0</MediaCrypto>
<MedCryptoKey></MedCryptoKey>
@@ -618,7 +643,7 @@
<DTMFInfoMode>0</DTMFInfoMode>
<NATType>0</NATType>
<EnableRport>1</EnableRport>
<Subscribe>0</Subscribe>
<Subscribe>{if isset($account.4.user_id)}1{else}{/if}</Subscribe>
<SubExpire>{$account.4.register_expires}</SubExpire>
<SingleCodec>0</SingleCodec>
<CLIR>0</CLIR>
@@ -637,7 +662,7 @@
<SignalPort>5060</SignalPort>
{if $account.4.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.4.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.4.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.4.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -645,10 +670,11 @@
<UriEscaped>1</UriEscaped>
<ClicktoTalk>0</ClicktoTalk>
<MwiNo></MwiNo>
<MWINum></MWINum>
<MWINum>{if isset($account.4.user_id)}*97{else}{/if}</MWINum>
<ParkNo></ParkNo>
<CallParkNum></CallParkNum>
<RetrieveNum></RetrieveNum>
<RetrieveType>0</RetrieveType>
<HelpNo></HelpNo>
<MSRPHelpNum></MSRPHelpNum>
<UserIsPhone>0</UserIsPhone>
@@ -671,13 +697,14 @@
<SendANOffCode></SendANOffCode>
<CWOnCode></CWOnCode>
<CWOffCode></CWOffCode>
<VoiceCodecMap>OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VoiceCodecMap>PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VideoCodecMap>{if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if}</VideoCodecMap>
<BLFListUri></BLFListUri>
<BLFServer></BLFServer>
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -694,7 +721,7 @@
<UseTelCall>0</UseTelCall>
<EnablePreview>0</EnablePreview>
<PreviewMode>1</PreviewMode>
<TLSVersion>0</TLSVersion>
<TLSVersion>2</TLSVersion>
<CSTANumber></CSTANumber>
<EnableChgPort>0</EnableChgPort>
<VQName></VQName>
@@ -716,6 +743,8 @@
<SessionTimerT1>500</SessionTimerT1>
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<line index="5">
<PhoneNumber>{$account.5.user_id}</PhoneNumber>
@@ -726,22 +755,25 @@
<RegisterUser>{$account.5.auth_id}</RegisterUser>
<RegisterPswd>{$account.5.password}</RegisterPswd>
<RegisterTTL>{$account.5.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.5.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.5.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.5.sip_port}</ProxyPort>
<ProxyUser>{$account.5.auth_id}</ProxyUser>
<ProxyPswd>{$account.5.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.5.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.5.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.5.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
<SignalRetryCounts>3</SignalRetryCounts>
<SignalCrypto>0</SignalCrypto>
<SigCryptoKey></SigCryptoKey>
<MediaCrypto>0</MediaCrypto>
<MedCryptoKey></MedCryptoKey>
@@ -775,15 +807,15 @@
<DTMFInfoMode>0</DTMFInfoMode>
<NATType>0</NATType>
<EnableRport>1</EnableRport>
<Subscribe>0</Subscribe>
<Subscribe>{if isset($account.5.user_id)}1{else}{/if}</Subscribe>
<SubExpire>{$account.5.register_expires}</SubExpire>
<SingleCodec>0</SingleCodec>
<CLIR>0</CLIR>
<StrictProxy>1</StrictProxy>
<DirectContact>0</DirectContact>
<HistoryInfo>0</HistoryInfo>
<DNSSRV>0</DNSSRV>
<DNSMode>0</DNSMode>
{if $account.5.sip_transport == 'dns srv'}<DNSSRV>1</DNSSRV>{/if}
{if $account.5.sip_transport == 'dns srv'}<DNSMode>1</DNSMode>{/if}
<XFERExpire>0</XFERExpire>
<BanAnonymous>0</BanAnonymous>
<DialOffLine>0</DialOffLine>
@@ -794,7 +826,7 @@
<SignalPort>5060</SignalPort>
{if $account.5.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.5.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.5.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.5.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -802,10 +834,11 @@
<UriEscaped>1</UriEscaped>
<ClicktoTalk>0</ClicktoTalk>
<MwiNo></MwiNo>
<MWINum></MWINum>
<MWINum>{if isset($account.5.user_id)}*97{else}{/if}</MWINum>
<ParkNo></ParkNo>
<CallParkNum></CallParkNum>
<RetrieveNum></RetrieveNum>
<RetrieveType>0</RetrieveType>
<HelpNo></HelpNo>
<MSRPHelpNum></MSRPHelpNum>
<UserIsPhone>0</UserIsPhone>
@@ -828,13 +861,14 @@
<SendANOffCode></SendANOffCode>
<CWOnCode></CWOnCode>
<CWOffCode></CWOffCode>
<VoiceCodecMap>OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VoiceCodecMap>PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VideoCodecMap>{if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if}</VideoCodecMap>
<BLFListUri></BLFListUri>
<BLFServer></BLFServer>
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -851,7 +885,7 @@
<UseTelCall>0</UseTelCall>
<EnablePreview>0</EnablePreview>
<PreviewMode>1</PreviewMode>
<TLSVersion>0</TLSVersion>
<TLSVersion>2</TLSVersion>
<CSTANumber></CSTANumber>
<EnableChgPort>0</EnableChgPort>
<VQName></VQName>
@@ -873,6 +907,8 @@
<SessionTimerT1>500</SessionTimerT1>
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<line index="6">
<PhoneNumber>{$account.6.user_id}</PhoneNumber>
@@ -883,22 +919,25 @@
<RegisterUser>{$account.6.auth_id}</RegisterUser>
<RegisterPswd>{$account.6.password}</RegisterPswd>
<RegisterTTL>{$account.6.register_expires}</RegisterTTL>
<NeedRegOn>0</NeedRegOn>
<BackupAddr></BackupAddr>
<BackupPort>5060</BackupPort>
<BackupTransport>0</BackupTransport>
<BackupTTL>3600</BackupTTL>
<BackupNeedRegOn>0</BackupNeedRegOn>
<EnableReg>{if isset($account.6.password)}1{else}0{/if}</EnableReg>
<ProxyAddr>{$account.6.outbound_proxy_primary}</ProxyAddr>
<ProxyPort>{$account.6.sip_port}</ProxyPort>
<ProxyUser>{$account.6.auth_id}</ProxyUser>
<ProxyPswd>{$account.6.password}</ProxyPswd>
<ProxyNeedRegOn>0</ProxyNeedRegOn>
<BakProxyAddr>{$account.6.outbound_proxy_secondary}</BakProxyAddr>
<BakProxyPort>{$account.6.sip_port}</BakProxyPort>
<BakProxyNeedRegOn>0</BakProxyNeedRegOn>
<EnableFailback>{if isset($account.6.outbound_proxy_secondary)}1{else}0{/if}</EnableFailback>
<FailbackInterval>1800</FailbackInterval>
<SignalFailback>0</SignalFailback>
<SignalRetryCounts>3</SignalRetryCounts>
<SignalCrypto>0</SignalCrypto>
<SigCryptoKey></SigCryptoKey>
<MediaCrypto>0</MediaCrypto>
<MedCryptoKey></MedCryptoKey>
@@ -932,15 +971,15 @@
<DTMFInfoMode>0</DTMFInfoMode>
<NATType>0</NATType>
<EnableRport>1</EnableRport>
<Subscribe>0</Subscribe>
<Subscribe>{if isset($account.6.user_id)}1{else}{/if}</Subscribe>
<SubExpire>{$account.6.register_expires}</SubExpire>
<SingleCodec>0</SingleCodec>
<CLIR>0</CLIR>
<StrictProxy>1</StrictProxy>
<DirectContact>0</DirectContact>
<HistoryInfo>0</HistoryInfo>
<DNSSRV>0</DNSSRV>
<DNSMode>0</DNSMode>
{if $account.6.sip_transport == 'dns srv'}<DNSSRV>1</DNSSRV>{/if}
{if $account.6.sip_transport == 'dns srv'}<DNSMode>1</DNSMode>{/if}
<XFERExpire>0</XFERExpire>
<BanAnonymous>0</BanAnonymous>
<DialOffLine>0</DialOffLine>
@@ -951,7 +990,7 @@
<SignalPort>5060</SignalPort>
{if $account.6.sip_transport == 'udp'}<Transport>0</Transport>{/if}
{if $account.6.sip_transport == 'tcp'}<Transport>1</Transport>{/if}
{if $account.6.sip_transport == 'tls'}<Transport>2</Transport>{/if}
{if $account.6.sip_transport == 'tls'}<Transport>3</Transport>{/if}
<UseSRVMixer>0</UseSRVMixer>
<SRVMixerUri></SRVMixerUri>
<LongContact>0</LongContact>
@@ -959,10 +998,11 @@
<UriEscaped>1</UriEscaped>
<ClicktoTalk>0</ClicktoTalk>
<MwiNo></MwiNo>
<MWINum></MWINum>
<MWINum>{if isset($account.6.user_id)}*97{else}{/if}</MWINum>
<ParkNo></ParkNo>
<CallParkNum></CallParkNum>
<RetrieveNum></RetrieveNum>
<RetrieveType>0</RetrieveType>
<HelpNo></HelpNo>
<MSRPHelpNum></MSRPHelpNum>
<UserIsPhone>0</UserIsPhone>
@@ -985,13 +1025,14 @@
<SendANOffCode></SendANOffCode>
<CWOnCode></CWOnCode>
<CWOffCode></CWOffCode>
<VoiceCodecMap>OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VoiceCodecMap>PCMU,PCMA,G726-32,G729,iLBC,G722</VoiceCodecMap>
<VideoCodecMap>{if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if}</VideoCodecMap>
<BLFListUri></BLFListUri>
<BLFServer></BLFServer>
<Respond182>0</Respond182>
<EnableBLFList>0</EnableBLFList>
<CallerIdType>4</CallerIdType>
<KeepHigherCallerID>0</KeepHigherCallerID>
<SynClockTime>0</SynClockTime>
<MohServer></MohServer>
<UseVPN>1</UseVPN>
@@ -1008,7 +1049,7 @@
<UseTelCall>0</UseTelCall>
<EnablePreview>0</EnablePreview>
<PreviewMode>1</PreviewMode>
<TLSVersion>0</TLSVersion>
<TLSVersion>2</TLSVersion>
<CSTANumber></CSTANumber>
<EnableChgPort>0</EnableChgPort>
<VQName></VQName>
@@ -1030,17 +1071,22 @@
<SessionTimerT1>500</SessionTimerT1>
<SessionTimerT2>4000</SessionTimerT2>
<SessionTimerT4>5000</SessionTimerT4>
<UnavailableMode>0</UnavailableMode>
<TCPUseRetryTimer>0</TCPUseRetryTimer>
</line>
<p2p>
<SIPP2PEnableAutoAnswer>0</SIPP2PEnableAutoAnswer>
<SIPP2PAutoAnswerDelay>30</SIPP2PAutoAnswerDelay>
<SIPP2PDtmfMode>1</SIPP2PDtmfMode>
<SIPP2PSipInfoDtmfMode>0</SIPP2PSipInfoDtmfMode>
<SIPP2PEnablePreview>0</SIPP2PEnablePreview>
<SIPP2PPreviewMode>0</SIPP2PPreviewMode>
<SIPP2PUseVPN>1</SIPP2PUseVPN>
</p2p>
</sip>
<call>
<port index="1">
<EnableXferDPlan></EnableXferDPlan>
<EnableXferDPlan>1</EnableXferDPlan>
<EnableFwdDPlan>0</EnableFwdDPlan>
<EnablePreDPlan>0</EnablePreDPlan>
<IPDialPrefix>.</IPDialPrefix>
@@ -1085,7 +1131,7 @@
<AllowIPCall>1</AllowIPCall>
<CallerNameType>0</CallerNameType>
<MuteForRing>0</MuteForRing>
<AutoHandleVideo>0</AutoHandleVideo>
<AutoHandleVideo>1</AutoHandleVideo>
<DefaultAnsMode>{$fanvil_default_answer_mode}</DefaultAnsMode>
<DefaultDialMode>{$fanvil_default_dial_mode}</DefaultDialMode>
<HoldToTransfer>0</HoldToTransfer>
@@ -1109,6 +1155,10 @@
<ConfDTMFCode></ConfDTMFCode>
<DisableDialSearch>0</DisableDialSearch>
<CallNumberFilter></CallNumberFilter>
<AutoResumeCurrent>0</AutoResumeCurrent>
<AlertTimeout>120</AlertTimeout>
<RingTimeout>120</RingTimeout>
<RingPriority>0</RingPriority>
</port>
<basic>
<DialbyPound>1</DialbyPound>
@@ -1189,13 +1239,17 @@
<CallLogDisplayType>0</CallLogDisplayType>
<EnableRecvSMS>1</EnableRecvSMS>
<EnableCallHistory>1</EnableCallHistory>
<LineDisplayFormat>$name@$protocol$instance</LineDisplayFormat>
<LineDisplayFormat>$name</LineDisplayFormat>
<EnableMWITone>0</EnableMWITone>
<AllPswdEncryption>0</AllPswdEncryption>
<SIPNotifyXML>1</SIPNotifyXML>
<BlockXMLWhenCall>1</BlockXMLWhenCall>
<XMLUpdateInterval>30</XMLUpdateInterval>
<VqmDisplayOrder></VqmDisplayOrder>
<EnablePushXMLAuth>0</EnablePushXMLAuth>
<PickupVisualAlert>0</PickupVisualAlert>
<PickupAudioAlert>0</PickupAudioAlert>
<PickupRingType></PickupRingType>
<display>
<LCDTitle>{$fanvil_greeting}</LCDTitle>
<LCDConstrast>5</LCDConstrast>
@@ -1216,6 +1270,7 @@
<Hold>0</Hold>
<Mute>0</Mute>
<MissedCall>3</MissedCall>
<PowserSaving>1</PowserSaving>
</powerLed>
<lineLed>
<LineIdleColor>0</LineIdleColor>
@@ -1224,25 +1279,36 @@
<blfLed>
<BLFIdleColor>0</BLFIdleColor>
<BLFIdleCtl>1</BLFIdleCtl>
<BLFIdleText>terminated</BLFIdleText>
<BLFRingColor>1</BLFRingColor>
<BLFRingCtl>2</BLFRingCtl>
<BLFUsingColor>1</BLFUsingColor>
<BLFUsingCtl>1</BLFUsingCtl>
<BLFRingText>early</BLFRingText>
<BLFDialingColor>1</BLFDialingColor>
<BLFDialingCtl>0</BLFDialingCtl>
<BLFDialingText></BLFDialingText>
<BLFTalkingColor>1</BLFTalkingColor>
<BLFTalkingCtl>1</BLFTalkingCtl>
<BLFTalkingText>confirmed</BLFTalkingText>
<BLFHoldColor>1</BLFHoldColor>
<BLFHoldCtl>0</BLFHoldCtl>
<BLFHoldText></BLFHoldText>
<BLFFailedColor>0</BLFFailedColor>
<BLFFailedCtl>0</BLFFailedCtl>
<BLFFailedText>failed</BLFFailedText>
<BLFParkedColor>0</BLFParkedColor>
<BLFParkedCtl>3</BLFParkedCtl>
<BLFParkedText>parked</BLFParkedText>
</blfLed>
<volume>
<HandsetVol></HandsetVol>
<HandsetMicVol></HandsetMicVol>
<HeadsetVol></HeadsetVol>
<HeadsetMicVol></HeadsetMicVol>
<HeadsetRingVol></HeadsetRingVol>
<HandFreeVol></HandFreeVol>
<HandFreeMicVol></HandFreeMicVol>
<HandFreeRingVol></HandFreeRingVol>
<RingType>{if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 1{/if}</RingType>
<HandsetVol>5</HandsetVol>
<HandsetMicVol>3</HandsetMicVol>
<HeadsetVol>5</HeadsetVol>
<HeadsetMicVol>3</HeadsetMicVol>
<HeadsetRingVol>5</HeadsetRingVol>
<HandFreeVol>8</HandFreeVol>
<HandFreeMicVol>3</HandFreeMicVol>
<HandFreeRingVol>4</HandFreeRingVol>
<RingType>{if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 2{/if}</RingType>
</volume>
<date>
<EnableSNTP>{if isset($fanvil_enable_sntp)}{$fanvil_enable_sntp}{else}1{/if}</EnableSNTP>
@@ -1274,7 +1340,7 @@
</timeDisplay>
<softkey>
<SoftkeyMode>0</SoftkeyMode>
<SoftKeyExitStyle>{if isset($fanvil_softkey_exit)}{$fanvil_softkey_exit}{else}2{/if}</SoftKeyExitStyle>
<SoftKeyExitStyle>{if isset($fanvil_softkey_exit)}{$fanvil_softkey_exit}{else}2{/if}</SoftKeyExitStyle>
<DesktopSoftkey>{if isset($fanvil_softkey_desktopsoftkey)}{$fanvil_softkey_desktopsoftkey}{else}history;contact;dnd;menu;{/if}</DesktopSoftkey>
<TalkingSoftkey>{if isset($fanvil_softkey_talkingsoftkey)}{$fanvil_softkey_talkingsoftkey}{else}hold;xfer;conf;end;{/if}</TalkingSoftkey>
<RingingSoftkey>{if isset($fanvil_softkey_ringingsoftkey)}{$fanvil_softkey_ringingsoftkey}{else}accept;none;forward;reject;{/if}</RingingSoftkey>
@@ -1289,6 +1355,7 @@
<DialerCfwdSoftkey>send;2aB;delete;exit;</DialerCfwdSoftkey>
<DesktopClick>{if isset($fanvil_softkey_desktopclick)}{$fanvil_softkey_desktopclick}{else}history;status;none;none;none;{/if}</DesktopClick>
<DailerClick>pline;nline;none;none;none;</DailerClick>
<RingingClick>none;none;none;none;none;</RingingClick>
<CallClick>none;none;none;none;none;</CallClick>
<DesktopLongPress>status;none;none;none;reset;</DesktopLongPress>
<DialerConfSoftkey>contact;clogs;redial;video;cancel;</DialerConfSoftkey>
@@ -1529,6 +1596,8 @@
<dm>
<OnhookTime>120</OnhookTime>
<EnableHookflash>0</EnableHookflash>
<KeyLongPressTime>2</KeyLongPressTime>
<KeyLongLongPressTime>6</KeyLongLongPressTime>
</dm>
<vqm>
<SessionReport>1</SessionReport>
@@ -1544,6 +1613,7 @@
<cti>
<EnabledActiveUri>1</EnabledActiveUri>
<EnabledActionUrl>1</EnabledActionUrl>
<ActionUrlType>0</ActionUrlType>
<ActiveUriIP></ActiveUriIP>
<StartRebootUrl></StartRebootUrl>
<BootCompletedUrl></BootCompletedUrl>
@@ -1554,6 +1624,8 @@
<PhoneStateIdleUrl></PhoneStateIdleUrl>
<PhoneStateTalking></PhoneStateTalking>
<PhoneStateRinging></PhoneStateRinging>
<OnhookUri></OnhookUri>
<OffhookUrl></OffhookUrl>
<DNDOnUrl></DNDOnUrl>
<DNDOffUrl></DNDOffUrl>
<AlwaysFWDOnUrl></AlwaysFWDOnUrl>
@@ -1578,6 +1650,7 @@
<NewMissedcallUrl></NewMissedcallUrl>
<NewMWIUrl></NewMWIUrl>
<NewSMSUrl></NewSMSUrl>
<WebAuthChangedUrl></WebAuthChangedUrl>
<at></at>
</cti>
<ateTest>
@@ -1649,6 +1722,9 @@
<Port>0</Port>
<Channel>0</Channel>
</addr>
<dynamic>
<AutoExitExpires>60</AutoExitExpires>
</dynamic>
</mcast>
<dsskey>
<SelectDsskeyAction>0</SelectDsskeyAction>
@@ -1656,10 +1732,12 @@
<FuncKeyPageNum>1</FuncKeyPageNum>
<SideKeyPageNum>1</SideKeyPageNum>
<DSSHomePage>0</DSSHomePage>
<DisplayParkedInfo>0</DisplayParkedInfo>
<DSSDIALSwitchMode>0</DSSDIALSwitchMode>
<FirstCallWaitTime>16</FirstCallWaitTime>
<FirstNumStartTime>360</FirstNumStartTime>
<FirstNumEndTime>1080</FirstNumEndTime>
<DSSLongPressAction>1</DSSLongPressAction>
<Extern1PageBelong>0</Extern1PageBelong>
<Extern2PageBelong>0</Extern2PageBelong>
<Extern3PageBelong>0</Extern3PageBelong>
@@ -1725,7 +1803,7 @@
</log>
<tr069>
<TR069Tone>1</TR069Tone>
<CPESerialNumber>00100400FV02001000000c383e3aaf78</CPESerialNumber>
<CPESerialNumber></CPESerialNumber>
<ACSServerType>1</ACSServerType>
<EnableTR069>0</EnableTR069>
<ACSURL>0.0.0.0</ACSURL>
@@ -1737,12 +1815,14 @@
<CPEUserName>dps</CPEUserName>
<CPEPassword>dps</CPEPassword>
<PeriodixInterval>3600</PeriodixInterval>
<TLSVersion>2</TLSVersion>
<TLSVersion>0</TLSVersion>
<AreaCode>020</AreaCode>
<STUNEnable>0</STUNEnable>
<STUNServerAddr>{$fanvil_stun_server}</STUNServerAddr>
<STUNServerPort>{$fanvil_stun_port}</STUNServerPort>
<STUNLocalPort>30000</STUNLocalPort>
<STUNMaxPeriod>30</STUNMaxPeriod>
<STUNMinPeriod>30</STUNMinPeriod>
</tr069>
<hotspot>
<EnableHotspot>0</EnableHotspot>
@@ -1751,23 +1831,32 @@
<ListenIP>224.0.2.0</ListenIP>
<ListenPort>16360</ListenPort>
<OwnName>SIP Hotspot</OwnName>
<RingMode>0</RingMode>
<EnableManageMode>0</EnableManageMode>
<EnableConfigMode>0</EnableConfigMode>
<hs index="1">
<Enable>1</Enable>
<ExtPrefix></ExtPrefix>
</hs>
<hs index="2">
<Enable>1</Enable>
<ExtPrefix></ExtPrefix>
</hs>
<hs index="3">
<Enable>1</Enable>
<ExtPrefix></ExtPrefix>
</hs>
<hs index="4">
<Enable>1</Enable>
<ExtPrefix></ExtPrefix>
</hs>
<hs index="5">
<Enable>1</Enable>
<ExtPrefix></ExtPrefix>
</hs>
<hs index="6">
<Enable>1</Enable>
<ExtPrefix></ExtPrefix>
</hs>
</hotspot>
<vpn>
@@ -1794,7 +1883,7 @@
<DeviceCfgFileKey></DeviceCfgFileKey>
<CommonCfgFileKey></CommonCfgFileKey>
<DownloadCommonConf>1</DownloadCommonConf>
<SaveProvisionInfo>0</SaveProvisionInfo>
<SaveProvisionInfo>1</SaveProvisionInfo>
<CheckFailTimes>5</CheckFailTimes>
<FlashServerIP>{if isset($fanvil_provision_url)}{$fanvil_provision_url}{else}https://{$domain_name}/app/provision{/if}</FlashServerIP>
<FlashFileName>{$fanvil_firmware_config}</FlashFileName>
@@ -1814,6 +1903,8 @@
<DHCPOption>66</DHCPOption>
<DHCPv6Option>0</DHCPv6Option>
<DhcpOption120>0</DhcpOption120>
<SaveDHCPOpion>0</SaveDHCPOpion>
<DhcpRenewUpgrade>1</DhcpRenewUpgrade>
</opt>
</ap>
<fwCheck>
@@ -1839,7 +1930,7 @@
<LLDPRefreshTime>{if isset($fanvil_lldp_refresh)}{$fanvil_lldp_refresh}{else}60{/if}</LLDPRefreshTime>
<LLDPLearnPolicy>{if isset($fanvil_lldp_learn)}{$fanvil_lldp_learn}{else}0{/if}</LLDPLearnPolicy>
<LLDPSaveLearnData>0</LLDPSaveLearnData>
<CDPEnable>0</CDPEnable>
<CDPEnable>1</CDPEnable>
<CDPRefreshTime>60</CDPRefreshTime>
<DHCPOptionVlan>132</DHCPOptionVlan>
</qos>
@@ -1867,6 +1958,7 @@
<ServerAddr>0.0.0.0</ServerAddr>
<ServerPort>10000</ServerPort>
</record>
<UIconfig></UIconfig>
<background>
<TimeoutToScreensaver>0</TimeoutToScreensaver>
<UserChangeBackground>0</UserChangeBackground>
@@ -1878,5 +1970,19 @@
<SMSPopup>1</SMSPopup>
<OtherPopup>1</OtherPopup>
<EnablePortMirror>0</EnablePortMirror>
<SidekeyLabelLength>0</SidekeyLabelLength>
<AppIconDisplay>1,1,1,1</AppIconDisplay>
<DisplayProvisionprompt>0</DisplayProvisionprompt>
<IdleTimeFontColor>0x262626</IdleTimeFontColor>
<CommonTitleFontColor>0xffffff</CommonTitleFontColor>
<SoftkeyFontColor>0xffffff</SoftkeyFontColor>
<MenuListFontColor>0x262626</MenuListFontColor>
<ScrollBarColor>0x5a9dba</ScrollBarColor>
<WarnThemeColor>0xc4012f</WarnThemeColor>
<InformThemeColor>0x007bb0</InformThemeColor>
<FunkeyListFontColor>0xffffff</FunkeyListFontColor>
<TalkingFontColor>0x262626</TalkingFontColor>
<DesktopTimeDisplay>1</DesktopTimeDisplay>
<TimeoutToPowerSaving></TimeoutToPowerSaving>
</background>
</sysConf>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -80,7 +80,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -107,7 +107,7 @@
<!-- Allow DHCP Option 66 to override server. 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check daily, 2 - Check weekly, 3 - Check every () minutes. Default is No. -->
<P194>0</P194>
@@ -377,7 +377,7 @@
{if isset($grandstream_dial_plan) }
<P4200>{$grandstream_dial_plan}</P4200>
{else}
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P4200>
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P4200>
{/if}
<!-- SUBSCRIBE for MWI. 0 - No, 1 - Yes -->
@@ -42,7 +42,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -62,7 +62,7 @@
<P235></P235>
<!-- Allow DHCP Option 66 to override server. 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check daily, 2 - Check weekly, 3 - Check every () minutes. Default is No. -->
<P194>0</P194>
<!-- Check for new firmware/config file every () minutes, unit is in minute, minimum 60 minutes, default is 7 days. -->
@@ -243,7 +243,7 @@
{if isset($grandstream_dial_plan) }
<P4200>{$grandstream_dial_plan}</P4200>
{else}
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P4200>
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P4200>
{/if}
<!-- SUBSCRIBE for MWI. 0 - No, 1 - Yes -->
@@ -489,10 +489,10 @@
{if isset($grandstream_dial_plan) }
<P4200>{$grandstream_dial_plan}</P4200>
{else}
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P4200>
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P4200>
{/if}
<!-- <P4200>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P4200> -->
<!-- <P4200>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P4200> -->
<!-- Use #as Dial Key (if set to Yes, "#" will function as the "(Re-)Dial" key). 0 - no, 1 - yes -->
<!-- Number: 0,1 -->
@@ -1022,7 +1022,7 @@
<!-- Dial Plan -->
<!-- String Max Length: 1024 -->
<P4201>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ }</P4201>
<!-- <P4201>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P4201> -->
<!-- <P4201>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P4201> -->
<!-- Use #as Dial Key (if set to Yes, "#" will function as the "(Re-)Dial" key). 0 - no, 1 - yes -->
<!-- Number: 0,1 -->
@@ -1551,7 +1551,7 @@
<!-- Dial Plan -->
<!-- String Max Length: 1024 -->
<P4202>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ }</P4202>
<!-- <P4202>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P4202> -->
<!-- <P4202>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P4202> -->
<!-- Use #as Dial Key (if set to Yes, "#" will function as the "(Re-)Dial" key). 0 - no, 1 - yes -->
<!-- Number: 0,1 -->
@@ -2081,7 +2081,7 @@
<!-- Dial Plan -->
<!-- String Max Length: 1024 -->
<P4203>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ }</P4203>
<!-- <P4203>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P4203> -->
<!-- <P4203>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P4203> -->
<!-- Use #as Dial Key (if set to Yes, "#" will function as the "(Re-)Dial" key). 0 - no, 1 - yes -->
<!-- Number: 0,1 -->
@@ -2913,7 +2913,7 @@
<!-- Provisioning via. 0 - TFTP Upgrade, 1 - HTTP Upgrade, 2 - HTTPS Upgrade. -->
<!-- Number: 0 to 2 -->
<!-- Mandatory -->
<P212>1</P212>
<P212>2</P212>
<!-- Config Server Path -->
<!-- String: serveraddress -->
@@ -2921,7 +2921,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -2938,13 +2938,13 @@
<!-- Number: 0,1 -->
<!-- Mandatory -->
<!-- Reboot required -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- 3CX Auto Provision. 0 - No, 1 - Yes. Default is 1 -->
<!-- Number: 0, 1 -->
@@ -410,7 +410,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
<!-- # Number: 0, 1 -->
@@ -449,7 +449,9 @@
<!-- # Feature Key Synchronization. 0 - Disable, 1 - Broadsoft. Default value is 0 -->
<!-- # Number: 0, 1 -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Enable Call Features. 0 - No, 1 - Yes. Default value is 0 -->
<!-- # Number: 0, 1 -->
@@ -486,7 +488,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Account Ring Tone. See ring tone options and value in the Ring Tone Value Table below -->
{if isset($grandstream_account_ring_tone_1)}
@@ -500,7 +502,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- # Matching Rule 1 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- # String -->
@@ -508,7 +510,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- # Matching Rule 2 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- # String -->
@@ -516,7 +518,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- # String -->
@@ -979,7 +981,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
@@ -1054,7 +1056,7 @@
<!-- # Conference-URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # No Answer Timeout (s). Default value is 20 -->
<!-- # Number: 1 - 120. -->
@@ -1547,7 +1549,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
@@ -1622,7 +1624,7 @@
<!-- # Conference-URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # No Answer Timeout (s). Default value is 20 -->
<!-- # Number: 1 - 120 -->
@@ -1630,7 +1632,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Account Ring Tone. See ring tone options and value in the Ring Tone value table below -->
<P523>content://settings/system/ringtone</P523>
@@ -2116,7 +2118,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
@@ -2191,7 +2193,7 @@
<!-- # Conference-URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Account Ring Tone. See ring tone options and value in the Ring Tone value table below -->
@@ -2687,7 +2689,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
@@ -2762,7 +2764,7 @@
<!-- # Conference-URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # No Answer Timeout (s). Default value is 20 -->
<!-- # Number: 1 - 120 -->
@@ -3258,7 +3260,7 @@
{if isset($grandstream_dial_plan) }
<P1859>{$grandstream_dial_plan}</P1859>
{else}
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1859>
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1859>
{/if}
<!-- # Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
@@ -3333,7 +3335,7 @@
<!-- # Conference-URI -->
<!-- # String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- # No Answer Timeout (s). Default value is 20 -->
<!-- # Number: 1 - 120 -->
@@ -4128,11 +4130,11 @@
<!-- # DHCP Option 66 Override server. 0 - No, 1 - Yes. Default value is 1 -->
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1 -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # DHCP Option 120 Override SIP Server. 0 - No, 1 - Yes. Default value is 1 -->
<!-- # Number: 0, 1 -->
<P1411>1</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}{/if}
<!-- # Firmware Upgrade Via. 0 - TFTP, 1 - HTTP, 2 - HTTPS, 3 - Manual Upload. Default value is 1 -->
<!-- # Number: 0, 1, 2, 3 -->
@@ -4168,7 +4170,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -690,7 +690,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
<!-- HTTP/HTTPS User Name -->
@@ -708,7 +708,7 @@
<!-- Automatic Upgrade Interval(m) (value:60~525600) -->
<P193>10080</P193>
<!-- DHCP Option 66 Override Server (0:Disable 1:Enable) -->
<P145>0</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Zero Config (0:Disable 1:Enable) -->
<P1414>0</P1414>
<!-- Automatic Upgrade (0:Disable 1:Enable) -->
@@ -743,7 +743,7 @@ E0Fw0O5Kx31JPa+aSBLDMZAG1+SZ/zfxRYQe7VH8p1g=
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
<!-- Config HTTP/HTTPS User Name -->
@@ -759,7 +759,7 @@ E0Fw0O5Kx31JPa+aSBLDMZAG1+SZ/zfxRYQe7VH8p1g=
<!-- Automatic Upgrade Interval(m) (value:60~525600) -->
<P193>10080</P193>
<!-- DHCP Option 66 Override Server (0:Disable 1:Enable) -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Zero Config (0:Disable 1:Enable) -->
<P1414>0</P1414>
<!-- Automatic Upgrade (0:Disable 1:Enable) -->
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -793,7 +795,7 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1489>5</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
@@ -803,87 +805,87 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1491>2</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492>ring3</P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1493>3</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- # Matching Incoming Caller ID. Matching Rule 4 -->
<!-- # String -->
<P6716></P6716>
<P6716>{$grandstream_distinctive_ringtone_name_4}</P6716>
<!-- # Matching Rule 4 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6717>5</P6717>
<P6717>{$grandstream_distinctive_ringtone_4}</P6717>
<!-- # Matching Incoming Caller ID. Matching Rule 5 -->
<!-- # String -->
<P6718></P6718>
<P6718>{$grandstream_distinctive_ringtone_name_5}</P6718>
<!-- # Matching Rule 5 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6719>5</P6719>
<P6719>{$grandstream_distinctive_ringtone_5}</P6719>
<!-- # Matching Incoming Caller ID. Matching Rule 6 -->
<!-- # String -->
<P6720></P6720>
<P6720>{$grandstream_distinctive_ringtone_name_6}</P6720>
<!-- # Matching Rule 6 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6721>5</P6721>
<P6721>{$grandstream_distinctive_ringtone_6}</P6721>
<!-- # Matching Incoming Caller ID. Matching Rule 7 -->
<!-- # String -->
<P26064></P26064>
<P26064>{$grandstream_distinctive_ringtone_name_7}</P26064>
<!-- # Matching Rule 7 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26065>5</P26065>
<P26065>{$grandstream_distinctive_ringtone_7}</P26065>
<!-- # Matching Incoming Caller ID. Matching Rule 8 -->
<!-- # String -->
<P26066></P26066>
<P26066>{$grandstream_distinctive_ringtone_name_8}</P26066>
<!-- # Matching Rule 8 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26067>5</P26067>
<P26067>{$grandstream_distinctive_ringtone_8}</P26067>
<!-- # Matching Incoming Caller ID. Matching Rule 9 -->
<!-- # String -->
<P26068></P26068>
<P26068>{$grandstream_distinctive_ringtone_name_9}</P26068>
<!-- # Matching Rule 9 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26069>5</P26069>
<P26069>{$grandstream_distinctive_ringtone_9}</P26069>
<!-- # Matching Incoming Caller ID. Matching Rule 10 -->
<!-- # String -->
<P26096></P26096>
<P26096>{$grandstream_distinctive_ringtone_name_10}</P26096>
<!-- # Matching Rule 10 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26097>5</P26097>
<P26097>{$grandstream_distinctive_ringtone_10}</P26097>
<!-- # Ring Timeout (in seconds). Default is 60 -->
<!-- # Number: 30 - 3600 -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2379,18 +2381,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>0</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -2451,7 +2453,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -3484,7 +3486,7 @@
{if $grandstream_call_waiting_ring == "0"} <P22102>0</P22102>{/if}
{if $grandstream_call_waiting_ring == "1"} <P22102>1</P22102>{/if}
{else}
<P2202>1</P2202>
<P22102>1</P22102>
{/if}
<!-- # Disable Busy Tone on Remote Disconnect. 0 - No, 1 - Yes. Default is 0 -->
@@ -3652,7 +3654,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -3915,17 +3917,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -4154,9 +4160,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -4168,8 +4172,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>2</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. -->
@@ -4177,8 +4179,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -4287,7 +4287,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -4406,7 +4408,7 @@
<!-- Detected {$template} with {$fixed_keys} fixed keys -->
{$start_id=1363}
{assign var=key_types value=["none"=>-1,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{assign var=key_types value=["none"=>-1,"phonebook"=>30,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{for $line=1 to 6}
{$pid=$line*2-2}
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -793,7 +795,7 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1489>5</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
@@ -803,87 +805,87 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1491>2</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492>ring3</P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1493>3</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- # Matching Incoming Caller ID. Matching Rule 4 -->
<!-- # String -->
<P6716></P6716>
<P6716>{$grandstream_distinctive_ringtone_name_4}</P6716>
<!-- # Matching Rule 4 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6717>5</P6717>
<P6717>{$grandstream_distinctive_ringtone_4}</P6717>
<!-- # Matching Incoming Caller ID. Matching Rule 5 -->
<!-- # String -->
<P6718></P6718>
<P6718>{$grandstream_distinctive_ringtone_name_5}</P6718>
<!-- # Matching Rule 5 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6719>5</P6719>
<P6719>{$grandstream_distinctive_ringtone_5}</P6719>
<!-- # Matching Incoming Caller ID. Matching Rule 6 -->
<!-- # String -->
<P6720></P6720>
<P6720>{$grandstream_distinctive_ringtone_name_6}</P6720>
<!-- # Matching Rule 6 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6721>5</P6721>
<P6721>{$grandstream_distinctive_ringtone_6}</P6721>
<!-- # Matching Incoming Caller ID. Matching Rule 7 -->
<!-- # String -->
<P26064></P26064>
<P26064>{$grandstream_distinctive_ringtone_name_7}</P26064>
<!-- # Matching Rule 7 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26065>5</P26065>
<P26065>{$grandstream_distinctive_ringtone_7}</P26065>
<!-- # Matching Incoming Caller ID. Matching Rule 8 -->
<!-- # String -->
<P26066></P26066>
<P26066>{$grandstream_distinctive_ringtone_name_8}</P26066>
<!-- # Matching Rule 8 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26067>5</P26067>
<P26067>{$grandstream_distinctive_ringtone_8}</P26067>
<!-- # Matching Incoming Caller ID. Matching Rule 9 -->
<!-- # String -->
<P26068></P26068>
<P26068>{$grandstream_distinctive_ringtone_name_9}</P26068>
<!-- # Matching Rule 9 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26069>5</P26069>
<P26069>{$grandstream_distinctive_ringtone_9}</P26069>
<!-- # Matching Incoming Caller ID. Matching Rule 10 -->
<!-- # String -->
<P26096></P26096>
<P26096>{$grandstream_distinctive_ringtone_name_10}</P26096>
<!-- # Matching Rule 10 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26097>5</P26097>
<P26097>{$grandstream_distinctive_ringtone_10}</P26097>
<!-- # Ring Timeout (in seconds). Default is 60 -->
<!-- # Number: 30 - 3600 -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2473,18 +2475,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>0</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -2545,7 +2547,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -3578,7 +3580,7 @@
{if $grandstream_call_waiting_ring == "0"} <P22102>0</P22102>{/if}
{if $grandstream_call_waiting_ring == "1"} <P22102>1</P22102>{/if}
{else}
<P2202>1</P2202>
<P22102>1</P22102>
{/if}
<!-- # Disable Busy Tone on Remote Disconnect. 0 - No, 1 - Yes. Default is 0 -->
@@ -3747,7 +3749,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -4010,17 +4012,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -4249,9 +4255,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -4263,8 +4267,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>2</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. -->
@@ -4272,8 +4274,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -4382,7 +4382,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -4501,7 +4503,7 @@
<!-- Detected {$template} with {$fixed_keys} fixed keys -->
{$start_id=1363}
{assign var=key_types value=["none"=>-1,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{assign var=key_types value=["none"=>-1,"phonebook"=>30,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{for $line=1 to 6}
{$pid=$line*2-2}
@@ -1,49 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
<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>
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -793,7 +795,7 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1489>5</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
@@ -803,87 +805,87 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1491>2</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492>ring3</P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1493>3</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- # Matching Incoming Caller ID. Matching Rule 4 -->
<!-- # String -->
<P6716></P6716>
<P6716>{$grandstream_distinctive_ringtone_name_4}</P6716>
<!-- # Matching Rule 4 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6717>5</P6717>
<P6717>{$grandstream_distinctive_ringtone_4}</P6717>
<!-- # Matching Incoming Caller ID. Matching Rule 5 -->
<!-- # String -->
<P6718></P6718>
<P6718>{$grandstream_distinctive_ringtone_name_5}</P6718>
<!-- # Matching Rule 5 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6719>5</P6719>
<P6719>{$grandstream_distinctive_ringtone_5}</P6719>
<!-- # Matching Incoming Caller ID. Matching Rule 6 -->
<!-- # String -->
<P6720></P6720>
<P6720>{$grandstream_distinctive_ringtone_name_6}</P6720>
<!-- # Matching Rule 6 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6721>5</P6721>
<P6721>{$grandstream_distinctive_ringtone_6}</P6721>
<!-- # Matching Incoming Caller ID. Matching Rule 7 -->
<!-- # String -->
<P26064></P26064>
<P26064>{$grandstream_distinctive_ringtone_name_7}</P26064>
<!-- # Matching Rule 7 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26065>5</P26065>
<P26065>{$grandstream_distinctive_ringtone_7}</P26065>
<!-- # Matching Incoming Caller ID. Matching Rule 8 -->
<!-- # String -->
<P26066></P26066>
<P26066>{$grandstream_distinctive_ringtone_name_8}</P26066>
<!-- # Matching Rule 8 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26067>5</P26067>
<P26067>{$grandstream_distinctive_ringtone_8}</P26067>
<!-- # Matching Incoming Caller ID. Matching Rule 9 -->
<!-- # String -->
<P26068></P26068>
<P26068>{$grandstream_distinctive_ringtone_name_9}</P26068>
<!-- # Matching Rule 9 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26069>5</P26069>
<P26069>{$grandstream_distinctive_ringtone_9}</P26069>
<!-- # Matching Incoming Caller ID. Matching Rule 10 -->
<!-- # String -->
<P26096></P26096>
<P26096>{$grandstream_distinctive_ringtone_name_10}</P26096>
<!-- # Matching Rule 10 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26097>5</P26097>
<P26097>{$grandstream_distinctive_ringtone_10}</P26097>
<!-- # Ring Timeout (in seconds). Default is 60 -->
<!-- # Number: 30 - 3600 -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3205,18 +3207,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>0</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -3277,7 +3279,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -4480,7 +4482,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -4751,22 +4753,22 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
{if isset ($grandstream_EHS)}
<P6779>{$grandstream_EHS}</P6779>
<P1487>{$grandstream_EHS}</P1487>
{else}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
{/if}
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
@@ -4969,9 +4971,7 @@
{if isset($grandstream2135_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream2135_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -4983,8 +4983,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>1</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. -->
@@ -4992,8 +4990,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -5102,7 +5098,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -5232,7 +5230,7 @@
<!-- Detected {$template} with {$fixed_keys} fixed keys -->
{$start_id=1363}
{assign var=key_types value=["none"=>-1,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{assign var=key_types value=["none"=>-1,"phonebook"=>30,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{for $line=1 to 6}
{$pid=$line*2-2}
@@ -1,49 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
<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>
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -793,7 +795,7 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1489>5</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
@@ -803,87 +805,87 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1491>2</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492>ring3</P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1493>3</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- # Matching Incoming Caller ID. Matching Rule 4 -->
<!-- # String -->
<P6716></P6716>
<P6716>{$grandstream_distinctive_ringtone_name_4}</P6716>
<!-- # Matching Rule 4 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6717>5</P6717>
<P6717>{$grandstream_distinctive_ringtone_4}</P6717>
<!-- # Matching Incoming Caller ID. Matching Rule 5 -->
<!-- # String -->
<P6718></P6718>
<P6718>{$grandstream_distinctive_ringtone_name_5}</P6718>
<!-- # Matching Rule 5 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6719>5</P6719>
<P6719>{$grandstream_distinctive_ringtone_5}</P6719>
<!-- # Matching Incoming Caller ID. Matching Rule 6 -->
<!-- # String -->
<P6720></P6720>
<P6720>{$grandstream_distinctive_ringtone_name_6}</P6720>
<!-- # Matching Rule 6 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6721>5</P6721>
<P6721>{$grandstream_distinctive_ringtone_6}</P6721>
<!-- # Matching Incoming Caller ID. Matching Rule 7 -->
<!-- # String -->
<P26064></P26064>
<P26064>{$grandstream_distinctive_ringtone_name_7}</P26064>
<!-- # Matching Rule 7 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26065>5</P26065>
<P26065>{$grandstream_distinctive_ringtone_7}</P26065>
<!-- # Matching Incoming Caller ID. Matching Rule 8 -->
<!-- # String -->
<P26066></P26066>
<P26066>{$grandstream_distinctive_ringtone_name_8}</P26066>
<!-- # Matching Rule 8 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26067>5</P26067>
<P26067>{$grandstream_distinctive_ringtone_8}</P26067>
<!-- # Matching Incoming Caller ID. Matching Rule 9 -->
<!-- # String -->
<P26068></P26068>
<P26068>{$grandstream_distinctive_ringtone_name_9}</P26068>
<!-- # Matching Rule 9 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26069>5</P26069>
<P26069>{$grandstream_distinctive_ringtone_9}</P26069>
<!-- # Matching Incoming Caller ID. Matching Rule 10 -->
<!-- # String -->
<P26096></P26096>
<P26096>{$grandstream_distinctive_ringtone_name_10}</P26096>
<!-- # Matching Rule 10 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26097>5</P26097>
<P26097>{$grandstream_distinctive_ringtone_10}</P26097>
<!-- # Ring Timeout (in seconds). Default is 60 -->
<!-- # Number: 30 - 3600 -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3203,7 +3205,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3543,7 +3545,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4411,18 +4413,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>0</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -4483,7 +4485,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -5569,7 +5571,7 @@
{if $grandstream_call_waiting_ring == "0"} <P22102>0</P22102>{/if}
{if $grandstream_call_waiting_ring == "1"} <P22102>1</P22102>{/if}
{else}
<P2202>1</P2202>
<P22102>1</P22102>
{/if}
<!-- # Disable Busy Tone on Remote Disconnect. 0 - No, 1 - Yes. Default is 0 -->
@@ -5743,7 +5745,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -6070,17 +6072,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -6284,9 +6290,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -6298,8 +6302,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>2</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. -->
@@ -6307,8 +6309,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -6431,7 +6431,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -6891,7 +6893,7 @@
<!-- # P8480 = -->
<!-- ######################################################################## -->
<!-- ## Settings/Extension Boards --->
<!-- ## Settings/Extension Boards -->
<!-- ######################################################################## -->
<!-- ######################################################################## -->
@@ -6936,8 +6938,6 @@
<!-- # String -->
<!-- <P23003></P23003> -->
{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{$start_id=23000}
{for $exp=1 to 160}
@@ -6955,7 +6955,6 @@
{/if}
{/for}
{
</config>
</gs_provision>
@@ -1,49 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
<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>
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -793,7 +795,7 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1489>5</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
@@ -803,87 +805,87 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1491>2</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492>ring3</P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1493>3</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- # Matching Incoming Caller ID. Matching Rule 4 -->
<!-- # String -->
<P6716></P6716>
<P6716>{$grandstream_distinctive_ringtone_name_4}</P6716>
<!-- # Matching Rule 4 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6717>5</P6717>
<P6717>{$grandstream_distinctive_ringtone_4}</P6717>
<!-- # Matching Incoming Caller ID. Matching Rule 5 -->
<!-- # String -->
<P6718></P6718>
<P6718>{$grandstream_distinctive_ringtone_name_5}</P6718>
<!-- # Matching Rule 5 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6719>5</P6719>
<P6719>{$grandstream_distinctive_ringtone_5}</P6719>
<!-- # Matching Incoming Caller ID. Matching Rule 6 -->
<!-- # String -->
<P6720></P6720>
<P6720>{$grandstream_distinctive_ringtone_name_6}</P6720>
<!-- # Matching Rule 6 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6721>5</P6721>
<P6721>{$grandstream_distinctive_ringtone_6}</P6721>
<!-- # Matching Incoming Caller ID. Matching Rule 7 -->
<!-- # String -->
<P26064></P26064>
<P26064>{$grandstream_distinctive_ringtone_name_7}</P26064>
<!-- # Matching Rule 7 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26065>5</P26065>
<P26065>{$grandstream_distinctive_ringtone_7}</P26065>
<!-- # Matching Incoming Caller ID. Matching Rule 8 -->
<!-- # String -->
<P26066></P26066>
<P26066>{$grandstream_distinctive_ringtone_name_8}</P26066>
<!-- # Matching Rule 8 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26067>5</P26067>
<P26067>{$grandstream_distinctive_ringtone_8}</P26067>
<!-- # Matching Incoming Caller ID. Matching Rule 9 -->
<!-- # String -->
<P26068></P26068>
<P26068>{$grandstream_distinctive_ringtone_name_9}</P26068>
<!-- # Matching Rule 9 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26069>5</P26069>
<P26069>{$grandstream_distinctive_ringtone_9}</P26069>
<!-- # Matching Incoming Caller ID. Matching Rule 10 -->
<!-- # String -->
<P26096></P26096>
<P26096>{$grandstream_distinctive_ringtone_name_10}</P26096>
<!-- # Matching Rule 10 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26097>5</P26097>
<P26097>{$grandstream_distinctive_ringtone_10}</P26097>
<!-- # Ring Timeout (in seconds). Default is 60 -->
<!-- # Number: 30 - 3600 -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3203,7 +3205,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3543,7 +3545,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4153,7 +4155,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -4491,7 +4493,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Bypass Dial Plan -->
@@ -5358,18 +5360,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>0</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -5430,7 +5432,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -6508,7 +6510,7 @@
{if $grandstream_call_waiting_ring == "0"} <P22102>0</P22102>{/if}
{if $grandstream_call_waiting_ring == "1"} <P22102>1</P22102>{/if}
{else}
<P2202>1</P2202>
<P22102>1</P22102>
{/if}
<!-- # Disable Busy Tone on Remote Disconnect. 0 - No, 1 - Yes. Default is 0 -->
@@ -6678,7 +6680,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -7005,17 +7007,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -7218,9 +7224,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -7232,8 +7236,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>2</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. -->
@@ -7241,8 +7243,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -7351,7 +7351,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -7486,7 +7488,7 @@
<!-- Detected {$template} with {$fixed_keys} fixed keys -->
{$start_id=1363}
{assign var=key_types value=["none"=>-1,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{assign var=key_types value=["none"=>-1,"phonebook"=>30,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{for $line=1 to 6}
{$pid=$line*2-2}
@@ -1,49 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
<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>
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -793,7 +795,7 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1489>5</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
@@ -803,87 +805,87 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1491>2</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492>ring3</P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1493>3</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- # Matching Incoming Caller ID. Matching Rule 4 -->
<!-- # String -->
<P6716></P6716>
<P6716>{$grandstream_distinctive_ringtone_name_4}</P6716>
<!-- # Matching Rule 4 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6717>5</P6717>
<P6717>{$grandstream_distinctive_ringtone_4}</P6717>
<!-- # Matching Incoming Caller ID. Matching Rule 5 -->
<!-- # String -->
<P6718></P6718>
<P6718>{$grandstream_distinctive_ringtone_name_5}</P6718>
<!-- # Matching Rule 5 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6719>5</P6719>
<P6719>{$grandstream_distinctive_ringtone_5}</P6719>
<!-- # Matching Incoming Caller ID. Matching Rule 6 -->
<!-- # String -->
<P6720></P6720>
<P6720>{$grandstream_distinctive_ringtone_name_6}</P6720>
<!-- # Matching Rule 6 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6721>5</P6721>
<P6721>{$grandstream_distinctive_ringtone_6}</P6721>
<!-- # Matching Incoming Caller ID. Matching Rule 7 -->
<!-- # String -->
<P26064></P26064>
<P26064>{$grandstream_distinctive_ringtone_name_7}</P26064>
<!-- # Matching Rule 7 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26065>5</P26065>
<P26065>{$grandstream_distinctive_ringtone_7}</P26065>
<!-- # Matching Incoming Caller ID. Matching Rule 8 -->
<!-- # String -->
<P26066></P26066>
<P26066>{$grandstream_distinctive_ringtone_name_8}</P26066>
<!-- # Matching Rule 8 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26067>5</P26067>
<P26067>{$grandstream_distinctive_ringtone_8}</P26067>
<!-- # Matching Incoming Caller ID. Matching Rule 9 -->
<!-- # String -->
<P26068></P26068>
<P26068>{$grandstream_distinctive_ringtone_name_9}</P26068>
<!-- # Matching Rule 9 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26069>5</P26069>
<P26069>{$grandstream_distinctive_ringtone_9}</P26069>
<!-- # Matching Incoming Caller ID. Matching Rule 10 -->
<!-- # String -->
<P26096></P26096>
<P26096>{$grandstream_distinctive_ringtone_name_10}</P26096>
<!-- # Matching Rule 10 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26097>5</P26097>
<P26097>{$grandstream_distinctive_ringtone_10}</P26097>
<!-- # Ring Timeout (in seconds). Default is 60 -->
<!-- # Number: 30 - 3600 -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3203,7 +3205,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3543,7 +3545,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4153,7 +4155,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -4491,7 +4493,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Bypass Dial Plan -->
@@ -5103,7 +5105,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -5443,7 +5445,7 @@
{if isset($grandstream_dial_plan) }
<P1859>{$grandstream_dial_plan}</P1859>
{else}
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1859>
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1859>
{/if}
<!-- # Bypass Dial Plan -->
@@ -6309,18 +6311,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>0</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -6381,7 +6383,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -7468,7 +7470,7 @@
{if $grandstream_call_waiting_ring == "0"} <P22102>0</P22102>{/if}
{if $grandstream_call_waiting_ring == "1"} <P22102>1</P22102>{/if}
{else}
<P2202>1</P2202>
<P22102>1</P22102>
{/if}
<!-- # Disable Busy Tone on Remote Disconnect. 0 - No, 1 - Yes. Default is 0 -->
@@ -7642,7 +7644,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -7969,17 +7971,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -8183,9 +8189,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -8197,8 +8201,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>2</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. -->
@@ -8206,8 +8208,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -8330,7 +8330,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -8464,7 +8466,7 @@
<!-- Detected {$template} with {$fixed_keys} fixed keys -->
{$start_id=1363}
{assign var=key_types value=["none"=>-1,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{assign var=key_types value=["none"=>-1,"phonebook"=>30,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}
{for $line=1 to 6}
{$pid=$line*2-2}
@@ -8813,7 +8815,7 @@
<!-- # P8480 = -->
<!-- ###################################################################################### -->
<!-- # Softkey 3 --->
<!-- # Softkey 3 -->
<!-- ###################################################################################### -->
<!-- # Key Mode. -->
<!-- # 0 - Default, 10 - Speed Dial, 14 - Speed Dial via active account, 15 - Dial DTMF, 16 - Voicemail, -->
@@ -8831,7 +8833,7 @@
<!-- # P8483 = -->
<!-- ######################################################################## -->
<!-- ## Settings/Extension Boards --->
<!-- ## Settings/Extension Boards -->
<!-- ######################################################################## -->
<!-- ######################################################################## -->
@@ -8895,7 +8897,6 @@
{/if}
{/for}
{
</config>
</gs_provision>
@@ -350,7 +350,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -416,7 +416,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -695,7 +697,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -704,7 +706,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -800,7 +802,7 @@
<!-- # 1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1489>5</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
@@ -810,87 +812,87 @@
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1491>2</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492>ring3</P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P1493>3</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- # Matching Incoming Caller ID. Matching Rule 4 -->
<!-- # String -->
<P6716></P6716>
<P6716>{$grandstream_distinctive_ringtone_name_4}</P6716>
<!-- # Matching Rule 4 Distinctive Ringtone -->
<!-- # 1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6717>5</P6717>
<P6717>{$grandstream_distinctive_ringtone_4}</P6717>
<!-- # Matching Incoming Caller ID. Matching Rule 5 -->
<!-- # String -->
<P6718></P6718>
<P6718>{$grandstream_distinctive_ringtone_name_5}</P6718>
<!-- # Matching Rule 5 Distinctive Ringtone -->
<!-- # 1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6719>5</P6719>
<P6719>{$grandstream_distinctive_ringtone_5}</P6719>
<!-- # Matching Incoming Caller ID. Matching Rule 6 -->
<!-- # String -->
<P6720></P6720>
<P6720>{$grandstream_distinctive_ringtone_name_6}</P6720>
<!-- # Matching Rule 6 Distinctive Ringtone -->
<!-- # 1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P6721>5</P6721>
<P6721>{$grandstream_distinctive_ringtone_6}</P6721>
<!-- # Matching Incoming Caller ID. Matching Rule 7 -->
<!-- # String -->
<P26064></P26064>
<P26064>{$grandstream_distinctive_ringtone_name_7}</P26064>
<!-- # Matching Rule 7 Distinctive Ringtone -->
<!-- # 1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26065>5</P26065>
<P26065>{$grandstream_distinctive_ringtone_7}</P26065>
<!-- # Matching Incoming Caller ID. Matching Rule 8 -->
<!-- # String -->
<P26066></P26066>
<P26066>{$grandstream_distinctive_ringtone_name_8}</P26066>
<!-- # Matching Rule 8 Distinctive Ringtone -->
<!-- # 1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26067>5</P26067>
<P26067>{$grandstream_distinctive_ringtone_8}</P26067>
<!-- # Matching Incoming Caller ID. Matching Rule 9 -->
<!-- # String -->
<P26068></P26068>
<P26068>{$grandstream_distinctive_ringtone_name_9}</P26068>
<!-- # Matching Rule 9 Distinctive Ringtone -->
<!-- # 1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26069>5</P26069>
<P26069>{$grandstream_distinctive_ringtone_9}</P26069>
<!-- # Matching Incoming Caller ID. Matching Rule 10 -->
<!-- # String -->
<P26096></P26096>
<P26096>{$grandstream_distinctive_ringtone_name_10}</P26096>
<!-- # Matching Rule 10 Distinctive Ringtone -->
<!-- # 1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 5. -->
<!-- # Number: -1, 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
<P26097>5</P26097>
<P26097>{$grandstream_distinctive_ringtone_10}</P26097>
<!-- # Ring Timeout (in seconds). Default is 60 -->
<!-- # Number: 30 - 3600 -->
@@ -1324,7 +1326,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1673,7 +1675,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2291,7 +2293,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2642,7 +2644,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2731,7 +2733,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3260,7 +3262,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3613,7 +3615,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4231,7 +4233,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -4584,7 +4586,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Bypass Dial Plan -->
@@ -5674,18 +5676,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -5746,7 +5748,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -6997,7 +6999,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -7247,17 +7249,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ringtone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes, both, 2 - Yes, speaker only. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
@@ -7471,16 +7477,14 @@
<!-- # Wallpaper Source. 0 - Default, 1 - Download, 2-USB(for GXP2140/2160/2170 only), 3 - Uploaded, 4 - Color Background -->
<!-- # Number: 0-4 -->
<!-- # Mandatory -->
<P2916>0</P2916>
<!-- <P2916>0</P2916> -->
<!-- # Wallpaper Server Path -->
<!-- # String -->
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -7492,8 +7496,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>1</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. -->
@@ -7501,8 +7503,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -7625,7 +7625,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -7794,7 +7796,7 @@
{if $template == "grandstream/grp2615"}{$fixed_keys=10}{/if}
<!-- Detected {$template} with {$fixed_keys} fixed keys -->
{$start_id=1363}
{assign var=key_types value=["none"=>-1,"line"=>31,"sharedline"=>32,"speeddial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17,"dnd"=>22]}
{assign var=key_types value=["none"=>-1,"phonebook"=>30,"line"=>31,"shared line"=>32,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17,"dnd"=>22]}
{for $line=1 to 6}
{$pid=$line*2-2}
@@ -353,7 +353,7 @@
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
@@ -584,7 +584,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
@@ -609,33 +609,33 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
@@ -940,7 +940,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -964,13 +964,13 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
@@ -227,7 +227,7 @@
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
@@ -453,7 +453,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
@@ -478,33 +478,33 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
@@ -814,7 +814,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -838,13 +838,13 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1V -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
@@ -1279,12 +1279,21 @@
<!-- HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1487>0</P1487>
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<gs_provision version="1">
<config version="1">
<!-- Configuration Template For GXP140x Firmware Version 1.0.5.26 -->
@@ -290,7 +290,9 @@
<!-- Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- Line-Seize Timeout (in seconds). Default is 15 -->
<!-- Number: 15 - 60 -->
<!-- Mandatory -->
@@ -300,7 +302,7 @@
<P134></P134>
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
<P2350></P2350>
@@ -481,7 +483,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
@@ -502,28 +504,28 @@
<P104>0</P104>
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
<!-- Mandatory -->
@@ -734,7 +736,7 @@
<P444></P444>
<!-- Conference URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Music On Hold URI -->
<!-- String -->
<P2450></P2450>
@@ -1186,7 +1188,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -1206,12 +1208,12 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -1548,7 +1550,9 @@
<!-- HEADSET Key Mode. 0 = Default Mode, 1 = Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -290,7 +290,9 @@
<!-- Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- Line-Seize Timeout (in seconds). Default is 15 -->
<!-- Number: 15 - 60 -->
<!-- Mandatory -->
@@ -300,7 +302,7 @@
<P134></P134>
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
<P2350></P2350>
@@ -481,7 +483,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
@@ -502,28 +504,28 @@
<P104>0</P104>
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
<!-- Mandatory -->
@@ -734,7 +736,7 @@
<P444></P444>
<!-- Conference URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Music On Hold URI -->
<!-- String -->
<P2450></P2450>
@@ -1186,7 +1188,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -1206,12 +1208,12 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -1548,7 +1550,9 @@
<!-- HEADSET Key Mode. 0 = Default Mode, 1 = Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -417,7 +417,7 @@
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
@@ -648,7 +648,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
@@ -673,33 +673,33 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
@@ -974,7 +974,7 @@
<!-- Conference URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Music On Hold URI -->
<!-- String -->
@@ -1569,7 +1569,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -1593,13 +1593,13 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
@@ -2055,7 +2055,9 @@
<!-- HEADSET Key Mode. 0 = Default Mode, 1 = Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
@@ -226,7 +226,7 @@
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
@@ -457,7 +457,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
@@ -482,33 +482,33 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
@@ -783,7 +783,7 @@
<!-- Conference URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Music On Hold URI -->
<!-- String -->
@@ -1376,7 +1376,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -1400,13 +1400,13 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
@@ -1862,7 +1862,9 @@
<!-- HEADSET Key Mode. 0 = Default Mode, 1 = Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
@@ -264,7 +264,7 @@
<P188>0</P188>
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
<P2350></P2350>
@@ -482,10 +482,10 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- <P290>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P290> -->
<!-- <P290>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P290> -->
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
<!-- Number: 1 - 120 -->
<!-- Mandatory -->
@@ -872,7 +872,7 @@
<P488>0</P488>
<!-- Conference URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Music On Hold URI -->
<!-- String -->
<P2450></P2450>
@@ -1087,7 +1087,7 @@
<!-- String -->
<!-- Mandatory -->
<P459>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ }</P459>
<!-- <P459>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P459> -->
<!-- <P459>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P459> -->
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
<!-- Number: 1 - 120 -->
<!-- Mandatory -->
@@ -1445,7 +1445,7 @@
<P2589>0</P2589>
<!-- Conference URI -->
<!-- String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- Music On Hold URI -->
<!-- String -->
<P2550></P2550>
@@ -1667,7 +1667,7 @@
<!-- String -->
<!-- Mandatory -->
<P559>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ }</P559>
<!-- <P559>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P559> -->
<!-- <P559>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P559> -->
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
<!-- Number: 1 - 120 -->
<!-- Mandatory -->
@@ -1686,7 +1686,7 @@
<P523>0</P523>
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
@@ -2018,17 +2018,17 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Additional Override DHCP option -->
<!-- 0 - None, 1 - Option 150, 2 - Option 160 -->
<!-- Number: 0, 1, 2 -->
<!-- Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- 3CX Auto Provision. 0 - No, 1 - Yes. Default is 1 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -2073,7 +2073,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
<!-- Config HTTP/HTTPS User Name -->
@@ -2694,11 +2694,21 @@
<!-- HEADSET Key Mode. 0=Default Mode, 1=Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
<!-- Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1487>0</P1487>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -773,7 +773,7 @@
<!-- # SIP Server -->
<!-- # String -->
<P47>{$account.1.server_address}</P47>
<P47>{$account.1.server_address}:{$account.1.sip_port}</P47>
<!-- # Secondary SIP Server -->
<!-- # String -->
@@ -781,11 +781,19 @@
<!-- # Outbound Proxy -->
<!-- # String -->
{if isset($account.1.outbound_proxy_primary)}
<P48>{$account.1.outbound_proxy_primary}:{$account.1.sip_port}</P48>
{else}
<P48></P48>
{/if}
<!-- # Backup Outbound Proxy -->
<!-- # String -->
{if isset($account.1.outbound_proxy_secondary)}
<P2333>{$account.1.outbound_proxy_secondary}:{$account.1.sip_port}</P2333>
{else}
<P2333></P2333>
{/if}
<!-- # BLF Server -->
<!-- # String -->
@@ -816,7 +824,11 @@
<!-- # DNS Mode. 0 - A Record, 1 - SRV, 2 - NAPTR/SRV, 3 - Use Configured IP. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_dns_mode)}
<P103>{$grandstream_dns_mode}</P103>
{else}
<P103>0</P103>
{/if}
<!-- # Primary IP. Maximum 15 characters -->
<!-- # String -->
@@ -833,7 +845,11 @@
<!-- # NAT Traversal. 0 - No, 1 - STUN, 2 - keep alive, 3 - UPnP, 4 - Auto, 5 - VPN. Default is 0. -->
<!-- # Number: 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
{if isset($grandstream_nat_traversal)}
<P52>{$grandstream_nat_traversal}</P52>
{else}
<P52>0</P52>
{/if}
<!-- # Proxy-Require (A SIP extension to enable firewall penetration). Max length is 64 characters -->
<!-- # String -->
@@ -911,7 +927,12 @@
<!-- # SIP Transport. 0 - UDP, 1 - TCP, 2 - TLS/TCP. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P130>0</P130>
{$tp=0}
{if $account.1.sip_transport == 'udp'}{$tp=0}{/if}
{if $account.1.sip_transport == 'tcp'}{$tp=1}{/if}
{if $account.1.sip_transport == 'tls'}{$tp=2}{/if}
{if $account.1.sip_transport == 'dns srv'}{$tp=1}{/if}
<P130>{$tp}</P130>
<!-- # SIP URI Scheme when using TLS. 0 - sip, 1 - sips. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -936,7 +957,12 @@
<!-- # SUBSCRIBE for MWI. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($subscribe_mwi)}
<P99>1</P99>
{else}
<P99>0</P99>
{/if}
<!-- # SUBSCRIBE for Registration. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -1008,7 +1034,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1017,7 +1043,9 @@
<!-- # Force BLF Call-pickup by prefix. 0 - Disable, 1 - Enable. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6752>0</P6752>
{if isset($grandstream_blf_call_pickup)}
<P6752>{$grandstream_blf_call_pickup}</P6752>
{/if}
<!-- # BLF Call-pickup Prefix. Default is ** -->
<!-- # String -->
@@ -1146,7 +1174,7 @@
<!-- # Accept Incoming SIP from Proxy Only. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2347>0</P2347>
<P2347>1</P2347>
<!-- # Authenticate Incoming INVITE. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -1217,7 +1245,11 @@
<!-- # SRTP Mode. 0 - Disabled, 1 - Enabled but not forced, 2 - Enabled and forced, 3 - Optional. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_srtp)}
<P183>{$grandstream_srtp}</P183>
{else}
<P183>0</P183>
{/if}
<!-- # Crypto Life Time -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
@@ -1314,7 +1346,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Call Log. 0 - Log All Calls, 1 - Log Incoming/Outgoing only (missed calls NOT recorded), 2 - Disable Call Log. Default is 0 -->
@@ -1329,33 +1361,33 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- # Matching Incoming Caller ID. Matching Rule 2 -->
<!-- # String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- # Matching Rule 2 Distinctive Ringtone -->
<!-- # 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- # Matching Incoming Caller ID. Matching Rule 3 -->
<!-- # String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- # Matching Rule 3 Distinctive Ringtone -->
<!-- # 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- # Ring Timeout (in seconds). Default is 60 -->
<!-- # Number: 30 - 3600 -->
@@ -1448,11 +1480,11 @@
<!-- # Account Name -->
<!-- # String -->
<P417>{$display_name_2}</P417>
<P417>{$account.2.display_name}</P417>
<!-- # SIP Server -->
<!-- # String -->
<P402>{$server_address_2}</P402>
<P402>{$account.2.server_address}:{$account.2.sip_port}</P402>
<!-- # Secondary SIP Server -->
<!-- # String -->
@@ -1460,11 +1492,19 @@
<!-- # Outbound Proxy -->
<!-- # String -->
{if isset($account.2.outbound_proxy_primary)}
<P403>{$account.2.outbound_proxy_primary}:{$account.2.sip_port}</P403>
{else}
<P403></P403>
{/if}
<!-- # Backup Outbound Proxy -->
<!-- # String -->
{if isset($account.2.outbound_proxy_secondary)}
<P2433>{$account.2.outbound_proxy_secondary}:{$account.2.sip_port}</P2433>
{else}
<P2433></P2433>
{/if}
<!-- # BLF Server -->
<!-- # String -->
@@ -1472,7 +1512,7 @@
<!-- # SIP User ID -->
<!-- # String -->
<P404>{$account.2.user_id}</P404>
<P404></P404>
<!-- # Authenticate ID -->
<!-- # String -->
@@ -1495,7 +1535,11 @@
<!-- # DNS Mode. 0 - A Record, 1 - SRV, 2 - NAPTR/SRV, 3 - Use Configured IP. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_dns_mode)}
<P408>{$grandstream_dns_mode}</P408>
{else}
<P408>0</P408>
{/if}
<!-- # Primary IP. Maximum 15 characters -->
<!-- # String -->
@@ -1512,7 +1556,11 @@
<!-- # NAT Traversal. 0 - No, 1 - STUN, 2 - keep alive, 3 - UPnP, 4 - Auto, 5 - VPN. Default is 0 -->
<!-- # Number: 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
{if isset($grandstream_nat_traversal)}
<P414>{$grandstream_nat_traversal}</P414>
{else}
<P414>0</P414>
{/if}
<!-- # Proxy-Require (A SIP extension to enable firewall penetration). Max length is 64 characters -->
<!-- # String -->
@@ -1590,7 +1638,12 @@
<!-- # SIP Transport. 0 - UDP, 1 - TCP, 2 - TCP/TLS. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P448>0</P448>
{$tp=0}
{if $account.2.sip_transport == 'udp'}{$tp=0}{/if}
{if $account.2.sip_transport == 'tcp'}{$tp=1}{/if}
{if $account.2.sip_transport == 'tls'}{$tp=2}{/if}
{if $account.2.sip_transport == 'dns srv'}{$tp=1}{/if}
<P448>{$tp}</P448>
<!-- # SIP URI Scheme when using TLS. 0 - sip, 1 - sips. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -1615,7 +1668,12 @@
<!-- # SUBSCRIBE for MWI (Whether or not send SUBSCRIBE for Message Waiting Indication). 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($subscribe_mwi)}
<P415>1</P415>
{else}
<P415>0</P415>
{/if}
<!-- # SUBSCRIBE for Registration. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -1687,7 +1745,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1696,7 +1754,9 @@
<!-- # Force BLF Call-pickup by prefix. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6753>0</P6753>
{if isset($grandstream_blf_call_pickup)}
<P6753>{$grandstream_blf_call_pickup}</P6753>
{/if}
<!-- # BLF Call-pickup Prefix. Default is ** -->
<!-- # String -->
@@ -1895,7 +1955,11 @@
<!-- # 0 - Disabled, 1 - Enabled but not forced, 2 - Enabled and forced, 3 - Optional. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_srtp)}
<P443>{$grandstream_srtp}</P443>
{else}
<P443>0</P443>
{/if}
<!-- #Crypto Life Time -->
<!-- #0 - No, 1 - Yes. Default is 0 -->
@@ -2120,7 +2184,7 @@
<!-- # SIP Server -->
<!-- # String -->
<P502>{$account.3.server_address}</P502>
<P502>{$account.3.server_address}:{$account.3.sip_port}</P502>
<!-- # Secondary SIP Server -->
<!-- # String -->
@@ -2128,11 +2192,19 @@
<!-- # Outbound Proxy -->
<!-- # String -->
{if isset($account.3.outbound_proxy_primary)}
<P503>{$account.3.outbound_proxy_primary}:{$account.3.sip_port}</P503>
{else}
<P503></P503>
{/if}
<!-- # Backup Outbound Proxy -->
<!-- # String -->
{if isset($account.3.outbound_proxy_secondary)}
<P2533>{$account.3.outbound_proxy_secondary}:{$account.3.sip_port}</P2533>
{else}
<P2533></P2533>
{/if}
<!-- # BLF Server -->
<!-- # String -->
@@ -2163,7 +2235,11 @@
<!-- # DNS Mode. 0 - A Record, 1 - SRV, 2 - NAPTR/SRV, 3 - Use Configured IP. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_dns_mode)}
<P508>{$grandstream_dns_mode}</P508>
{else}
<P508>0</P508>
{/if}
<!-- # Primary IP. Maximum 15 characters -->
<!-- # String -->
@@ -2180,7 +2256,11 @@
<!-- # NAT Traversal. 0 - No, 1 - STUN, 2 - keep alive, 3 - UPnP, 4 - Auto, 5 - VPN. Default is 0 -->
<!-- # Number: 0, 1, 2, 3, 4, 5 -->
<!-- # Mandatory -->
{if isset($grandstream_nat_traversal)}
<P514>{$grandstream_nat_traversal}</P514>
{else}
<P514>0</P514>
{/if}
<!-- # Proxy-Require (A SIP extension to enable firewall penetration). Max length is 64 characters -->
<!-- # String -->
@@ -2258,7 +2338,12 @@
<!-- # SIP Transport. 0 - UDP, 1 - TCP. 2- TCP/TLS. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P548>0</P548>
{$tp=0}
{if $account.3.sip_transport == 'udp'}{$tp=0}{/if}
{if $account.3.sip_transport == 'tcp'}{$tp=1}{/if}
{if $account.3.sip_transport == 'tls'}{$tp=2}{/if}
{if $account.3.sip_transport == 'dns srv'}{$tp=1}{/if}
<P548>{$tp}</P548>
<!-- # SIP URI Scheme When Using TLS. 0 - sip, 1 - sips. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -2283,7 +2368,12 @@
<!-- # SUBSCRIBE for MWI (Whether or not send SUBSCRIBE for Message Waiting Indication). 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($subscribe_mwi)}
<P515>1</P515>
{else}
<P515>0</P515>
{/if}
<!-- # SUBSCRIBE for Registration. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -2355,7 +2445,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2364,7 +2454,9 @@
<!-- # Force BLF Call-pickup by prefix. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6754>0</P6754>
{if isset($grandstream_blf_call_pickup)}
<P6754>{$grandstream_blf_call_pickup}</P6754>
{/if}
<!-- # BLF Call-pickup Prefix. Default is ** -->
<!-- # String -->
@@ -2562,7 +2654,11 @@
<!-- # 0 - Disabled, 1 - Enabled but not forced, 2 - Enabled and forced, 3 - Optional. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_srtp)}
<P543>{$grandstream_srtp}</P543>
{else}
<P543>0</P543>
{/if}
<!-- # Crypto Life Time -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
@@ -2668,7 +2764,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
@@ -3763,12 +3859,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -5981,18 +6086,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server. -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -6039,7 +6144,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -85,7 +85,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -106,7 +106,7 @@
<!-- Allow DHCP Option43 and Option 66 to override server: 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No. -->
<P194>0</P194>
@@ -1991,7 +1991,9 @@
<!-- Headset keymode. 0 - Default Mode, 1 - Toggle Speaker(default)/Headset, 2 - Toggle Speaker/Headset(default) -->
<!-- Not avaliable for GXP2000 -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- For GXP1200 and GXP280 Only; 0 = Switch, 1 = Hub -->
<P1348>0</P1348>
@@ -243,7 +243,9 @@
<!--# Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0-->
<!--# Number: 0, 1-->
<!--# Mandatory-->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!--# Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!--# Number: 0, 1-->
@@ -261,7 +263,7 @@
<!--# Conference URI-->
<!--# String-->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!--# Music On Hold URI-->
<!--# String-->
@@ -513,7 +515,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!--# Delayed Call Forward Wait Time (in seconds). Default is 20-->
@@ -538,33 +540,33 @@
<!--# Matching Incoming Caller ID. Matching Rule 1-->
<!--# String-->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!--# Matching Rule 1 Distinctive Ringtone-->
<!--# 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0.-->
<!--# Number: 0, 1, 2, 3-->
<!--# Mandatory-->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!--# Matching Incoming Caller ID. Matching Rule 2-->
<!--# String-->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!--# Matching Rule 2 Distinctive Ringtone-->
<!--# 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0-->
<!--# Number: 0, 1, 2, 3-->
<!--# Mandatory-->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!--# Matching Incoming Caller ID. Matching Rule 3-->
<!--# String-->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!--# Matching Rule 3 Distinctive Ringtone-->
<!--# 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0-->
<!--# Number: 0, 1, 2, 3-->
<!--# Mandatory-->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!--# Ring Timeout (in seconds). Default is 60-->
<!--# Number: 30 - 3600-->
@@ -891,7 +893,7 @@
<!--# Conference URI-->
<!--# String-->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!--# Music On Hold URI-->
<!--# String-->
@@ -1519,7 +1521,7 @@
<!--# Conference URI-->
<!--# String-->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!--# Music On Hold URI-->
<!--# String-->
@@ -1794,7 +1796,7 @@
<!--# Matching Incoming Caller ID. Matching Rule 1-->
<!--# String-->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!--# Matching Rule 1 Distinctive Ringtone-->
<!--# 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0-->
@@ -2145,7 +2147,7 @@
<!--# Conference URI-->
<!--# String-->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!--# Music On Hold URI-->
<!--# String-->
@@ -2809,7 +2811,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -2833,13 +2835,13 @@
<!--# When set to Yes(1), it will override the configured provision path and method-->
<!--# Number: 0, 1-->
<!--# Mandatory-->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!--# Allow DHCP Option 120 to Override SIP Server-->
<!--# 0 - No, 1 - Yes. Default is 0-->
<!--# Number: 0, 1-->
<!--# Mandatory-->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!--# 3CX Auto Provision. 0 - No, 1 - Yes. Default is 1-->
<!--# Number: 0, 1-->
@@ -3470,7 +3472,9 @@
<!--# HEADSET Key Mode. 0 = Default Mode, 1 = Toggle Headset/Speaker. Default is 0-->
<!--# Number: 0, 1-->
<!--# Mandatory-->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!--# Always Ring Speaker. 0 - No, 1 - Yes. Default is 0-->
<!--# Number: 0, 1-->
@@ -166,7 +166,9 @@
<!-- Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- Line-Seize Timeout (in seconds). Default is 15 -->
<!-- Number: 15 - 60 -->
<!-- Mandatory -->
@@ -176,7 +178,7 @@
<P134></P134>
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
<P2350></P2350>
@@ -357,7 +359,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20-->
@@ -378,28 +380,28 @@
<P104>0</P104>
<!-- Matching Incoming Caller ID. Matching Rule 1-->
<!-- String-->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone-->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0.-->
<!-- Number: 0, 1, 2, 3-->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2-->
<!-- String-->
<P1490>0</P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone-->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0-->
<!-- Number: 0, 1, 2, 3-->
<!-- Mandatory-->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3-->
<!-- String-->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2,3-->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
<!-- Mandatory -->
@@ -614,7 +616,7 @@
<P444></P444>
<!-- Conference URI-->
<!-- String-->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Music On Hold URI-->
<!-- String-->
<P2450></P2450>
@@ -1047,7 +1049,7 @@
<P544></P544>
<!-- Conference URI -->
<!-- String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- Music On Hold URI -->
<!-- String -->
<P2550></P2550>
@@ -1241,7 +1243,7 @@
<P523>0</P523>
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
@@ -1478,7 +1480,7 @@
<P644></P644>
<!-- Conference URI -->
<!-- String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- Music On Hold -->
<!-- String -->
<P2650></P2650>
@@ -1925,7 +1927,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -1945,12 +1947,12 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -2283,11 +2285,21 @@
<!-- HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
<!-- Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1487>0</P1487>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500>grandstream_distinctive_ringtone_name_1</P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3203,7 +3205,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3543,7 +3545,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4153,7 +4155,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -4491,7 +4493,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Bypass Dial Plan -->
@@ -5103,7 +5105,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -5443,7 +5445,7 @@
{if isset($grandstream_dial_plan) }
<P1859>{$grandstream_dial_plan}</P1859>
{else}
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1859>
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1859>
{/if}
<!-- # Bypass Dial Plan -->
@@ -6054,50 +6056,66 @@
<!-- # OpenVPN Enable. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_enable)}
<P7050>{$grandstream_openvpn_enable}</P7050>
{else}
<P7050>0</P7050>
{/if}
<!-- # OpenVPN Server Address -->
<!-- # String -->
<P7051></P7051>
<P7051>{$grandstream_openvpn_server}</P7051>
<!-- # OpenVPN Port. Default is 1194 -->
<!-- # Number -->
<!-- # Number -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_port)}
<P7052>{$grandstream_openvpn_port}</P7052>
{else}
<P7052>1194</P7052>
{/if}
<!-- # OpenVPN Transport. 0 - UDP, 1 - TCP. Default is 0 -->
<!-- #Number: 0, 1 -->
<!-- #Mandatory -->
{if isset($grandstream_openvpn_transport)}
<P2912>{$grandstream_openvpn_transport}</P2912>
{else}
<P2912>0</P2912>
{/if}
<!-- # OpenVPN CA -->
<!-- # String -->
<P9902></P9902>
<P9902>{$grandstream_openvpn_ca}</P9902>
<!-- # OpenVPN Certificate -->
<!-- # String -->
<P9903></P9903>
<P9903>{$grandstream_openvpn_cert}</P9903>
<!-- # OpenVPN Client Key -->
<!-- # String -->
<P9904></P9904>
<P9904>{$grandstream_openvpn_key}</P9904>
<!-- # OpenVPN Cipher Method. 0 - Blowfish, 1 - AES-128, 2 - AES-256, 3 - Triple-DES. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_cipher)}
<P8396>{$grandstream_openvpn_cipher}</P8396>
{else}
<P8396>0</P8396>
{/if}
<!-- # OpenVPN Username -->
<!-- # String -->
<P8394></P8394>
<P8394>{$grandstream_openvpn_username}</P8394>
<!-- # OpenVPN Password -->
<!-- # String -->
<P8395></P8395>
<P8395>{$grandstream_openvpn_password}</P8395>
<!-- # Additional Options -->
<!-- # String -->
<P8460></P8460>
<P8460>{$grandstream_openvpn_options}</P8460>
<!-- ############################################################################## -->
<!-- ## Network/SNMP Settings ## -->
@@ -6233,18 +6251,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -6305,7 +6323,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -6679,7 +6697,11 @@
<!-- # Sort Phonebook by. 0 - Last Name, 1 - First Name. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_sort_phonebook_by)}
<P2914>{$grandstream_sort_phonebook_by}</P2914>
{else}
<P2914>0</P2914>
{/if}
<!-- # Phonebook Key Function. 0 - Default, 1 - LDAP Search, 2 - Local Phonebook, 3 - Local Group, 4 - Broadsoft Phonebook -->
<!-- # Number: 0, 1, 2, 3, 4. -->
@@ -6693,7 +6715,11 @@
<!-- # Default search mode. 0 - Quick match, 1 - Exact match. Default is 0 -->
<!-- # Number: 0, 1. -->
<!-- # Mandatory -->
{if isset($grandstream_phonebook_search_mode)}
<P2970>{$grandstream_phonebook_search_mode}</P2970>
{else}
<P2970>0</P2970>
{/if}
<!-- ############################################################################## -->
<!-- ## Phonebook/LDAP -->
@@ -7581,7 +7607,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -7908,17 +7934,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -8122,9 +8152,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -8136,8 +8164,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>1</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. ~~for GXP2140/2160/2170 only -->
@@ -8145,8 +8171,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -8255,7 +8279,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500>grandstream_distinctive_ringtone_name_1</P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3203,7 +3205,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3543,7 +3545,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4153,7 +4155,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -4491,7 +4493,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Bypass Dial Plan -->
@@ -5103,7 +5105,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -5443,7 +5445,7 @@
{if isset($grandstream_dial_plan) }
<P1859>{$grandstream_dial_plan}</P1859>
{else}
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1859>
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1859>
{/if}
<!-- # Bypass Dial Plan -->
@@ -6054,50 +6056,66 @@
<!-- # OpenVPN Enable. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_enable)}
<P7050>{$grandstream_openvpn_enable}</P7050>
{else}
<P7050>0</P7050>
{/if}
<!-- # OpenVPN Server Address -->
<!-- # String -->
<P7051></P7051>
<P7051>{$grandstream_openvpn_server}</P7051>
<!-- # OpenVPN Port. Default is 1194 -->
<!-- # Number -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_port)}
<P7052>{$grandstream_openvpn_port}</P7052>
{else}
<P7052>1194</P7052>
{/if}
<!-- # OpenVPN Transport. 0 - UDP, 1 - TCP. Default is 0 -->
<!-- #Number: 0, 1 -->
<!-- #Mandatory -->
{if isset($grandstream_openvpn_transport)}
<P2912>{$grandstream_openvpn_transport}</P2912>
{else}
<P2912>0</P2912>
{/if}
<!-- # OpenVPN CA -->
<!-- # String -->
<P9902></P9902>
<P9902>{$grandstream_openvpn_ca}</P9902>
<!-- # OpenVPN Certificate -->
<!-- # String -->
<P9903></P9903>
<P9903>{$grandstream_openvpn_cert}</P9903>
<!-- # OpenVPN Client Key -->
<!-- # String -->
<P9904></P9904>
<P9904>{$grandstream_openvpn_key}</P9904>
<!-- # OpenVPN Cipher Method. 0 - Blowfish, 1 - AES-128, 2 - AES-256, 3 - Triple-DES. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_cipher)}
<P8396>{$grandstream_openvpn_cipher}</P8396>
{else}
<P8396>0</P8396>
{/if}
<!-- # OpenVPN Username -->
<!-- # String -->
<P8394></P8394>
<P8394>{$grandstream_openvpn_username}</P8394>
<!-- # OpenVPN Password -->
<!-- # String -->
<P8395></P8395>
<P8395>{$grandstream_openvpn_password}</P8395>
<!-- # Additional Options -->
<!-- # String -->
<P8460></P8460>
<P8460>{$grandstream_openvpn_options}</P8460>
<!-- ############################################################################## -->
<!-- ## Network/SNMP Settings ## -->
@@ -6233,23 +6251,23 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1414>1</P1414>
<P1414>0</P1414>
<!-- # Automatic Upgrade. -->
<!-- # 0 - No, -->
@@ -6291,7 +6309,7 @@
<!-- # Firmware Upgrade Confirmation. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0,1 -->
<!-- # Mandatory -->
<P8375>1</P8375>
<P8375>0</P8375>
<!-- #Config -->
<!-- # Config Via. 0 - TFTP, 1 - HTTP, 2 - HTTPS, 3 - FTP, 4 - FTPS. Default is 1. Default is 2 -->
@@ -6305,7 +6323,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -7581,7 +7599,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -7908,17 +7926,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -8123,9 +8145,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -8137,8 +8157,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>1</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. ~~for GXP2140/2160/2170 only -->
@@ -8146,8 +8164,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -8256,7 +8272,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500>grandstream_distinctive_ringtone_name_1</P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3203,7 +3205,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3543,7 +3545,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4153,7 +4155,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -4491,7 +4493,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Bypass Dial Plan -->
@@ -5103,7 +5105,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -5443,7 +5445,7 @@
{if isset($grandstream_dial_plan) }
<P1859>{$grandstream_dial_plan}</P1859>
{else}
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1859>
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1859>
{/if}
<!-- # Bypass Dial Plan -->
@@ -6054,50 +6056,66 @@
<!-- # OpenVPN Enable. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_enable)}
<P7050>{$grandstream_openvpn_enable}</P7050>
{else}
<P7050>0</P7050>
{/if}
<!-- # OpenVPN Server Address -->
<!-- # String -->
<P7051></P7051>
<P7051>{$grandstream_openvpn_server}</P7051>
<!-- # OpenVPN Port. Default is 1194 -->
<!-- # Number -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_port)}
<P7052>{$grandstream_openvpn_port}</P7052>
{else}
<P7052>1194</P7052>
{/if}
<!-- # OpenVPN Transport. 0 - UDP, 1 - TCP. Default is 0 -->
<!-- #Number: 0, 1 -->
<!-- #Mandatory -->
{if isset($grandstream_openvpn_transport)}
<P2912>{$grandstream_openvpn_transport}</P2912>
{else}
<P2912>0</P2912>
{/if}
<!-- # OpenVPN CA -->
<!-- # String -->
<P9902></P9902>
<P9902>{$grandstream_openvpn_ca}</P9902>
<!-- # OpenVPN Certificate -->
<!-- # String -->
<P9903></P9903>
<P9903>{$grandstream_openvpn_cert}</P9903>
<!-- # OpenVPN Client Key -->
<!-- # String -->
<P9904></P9904>
<P9904>{$grandstream_openvpn_key}</P9904>
<!-- # OpenVPN Cipher Method. 0 - Blowfish, 1 - AES-128, 2 - AES-256, 3 - Triple-DES. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_cipher)}
<P8396>{$grandstream_openvpn_cipher}</P8396>
{else}
<P8396>0</P8396>
{/if}
<!-- # OpenVPN Username -->
<!-- # String -->
<P8394></P8394>
<P8394>{$grandstream_openvpn_username}</P8394>
<!-- # OpenVPN Password -->
<!-- # String -->
<P8395></P8395>
<P8395>{$grandstream_openvpn_password}</P8395>
<!-- # Additional Options -->
<!-- # String -->
<P8460></P8460>
<P8460>{$grandstream_openvpn_options}</P8460>
<!-- ############################################################################## -->
<!-- ## Network/SNMP Settings ## -->
@@ -6233,18 +6251,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -6305,7 +6323,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -7581,7 +7599,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -7908,17 +7926,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -8123,9 +8145,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -8137,8 +8157,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>1</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. ~~for GXP2140/2160/2170 only -->
@@ -8146,8 +8164,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -8256,7 +8272,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500>grandstream_distinctive_ringtone_name_1</P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3203,7 +3205,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3543,7 +3545,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4153,7 +4155,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -4491,7 +4493,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Bypass Dial Plan -->
@@ -5103,7 +5105,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -5443,7 +5445,7 @@
{if isset($grandstream_dial_plan) }
<P1859>{$grandstream_dial_plan}</P1859>
{else}
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1859>
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1859>
{/if}
<!-- # Bypass Dial Plan -->
@@ -6054,50 +6056,66 @@
<!-- # OpenVPN Enable. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_enable)}
<P7050>{$grandstream_openvpn_enable}</P7050>
{else}
<P7050>0</P7050>
{/if}
<!-- # OpenVPN Server Address -->
<!-- # String -->
<P7051></P7051>
<P7051>{$grandstream_openvpn_server}</P7051>
<!-- # OpenVPN Port. Default is 1194 -->
<!-- # Number -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_port)}
<P7052>{$grandstream_openvpn_port}</P7052>
{else}
<P7052>1194</P7052>
{/if}
<!-- # OpenVPN Transport. 0 - UDP, 1 - TCP. Default is 0 -->
<!-- #Number: 0, 1 -->
<!-- #Mandatory -->
{if isset($grandstream_openvpn_transport)}
<P2912>{$grandstream_openvpn_transport}</P2912>
{else}
<P2912>0</P2912>
{/if}
<!-- # OpenVPN CA -->
<!-- # String -->
<P9902></P9902>
<P9902>{$grandstream_openvpn_ca}</P9902>
<!-- # OpenVPN Certificate -->
<!-- # String -->
<P9903></P9903>
<P9903>{$grandstream_openvpn_cert}</P9903>
<!-- # OpenVPN Client Key -->
<!-- # String -->
<P9904></P9904>
<P9904>{$grandstream_openvpn_key}</P9904>
<!-- # OpenVPN Cipher Method. 0 - Blowfish, 1 - AES-128, 2 - AES-256, 3 - Triple-DES. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_cipher)}
<P8396>{$grandstream_openvpn_cipher}</P8396>
{else}
<P8396>0</P8396>
{/if}
<!-- # OpenVPN Username -->
<!-- # String -->
<P8394></P8394>
<P8394>{$grandstream_openvpn_username}</P8394>
<!-- # OpenVPN Password -->
<!-- # String -->
<P8395></P8395>
<P8395>{$grandstream_openvpn_password}</P8395>
<!-- # Additional Options -->
<!-- # String -->
<P8460></P8460>
<P8460>{$grandstream_openvpn_options}</P8460>
<!-- ############################################################################## -->
<!-- ## Network/SNMP Settings ## -->
@@ -6233,18 +6251,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -6305,7 +6323,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -6683,7 +6701,11 @@
<!-- # Sort Phonebook by. 0 - Last Name, 1 - First Name. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_sort_phonebook_by)}
<P2914>{$grandstream_sort_phonebook_by}</P2914>
{else}
<P2914>0</P2914>
{/if}
<!-- # Phonebook Key Function. 0 - Default, 1 - LDAP Search, 2 - Local Phonebook, 3 - Local Group, 4 - Broadsoft Phonebook -->
<!-- # Number: 0, 1, 2, 3, 4. -->
@@ -6697,7 +6719,11 @@
<!-- # Default search mode. 0 - Quick match, 1 - Exact match. Default is 0 -->
<!-- # Number: 0, 1. -->
<!-- # Mandatory -->
{if isset($grandstream_phonebook_search_mode)}
<P2970>{$grandstream_phonebook_search_mode}</P2970>
{else}
<P2970>0</P2970>
{/if}
<!-- ############################################################################## -->
<!-- ## Phonebook/LDAP -->
@@ -7585,7 +7611,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -7912,17 +7938,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -8127,9 +8157,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -8141,8 +8169,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>1</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. ~~for GXP2140/2160/2170 only -->
@@ -8150,8 +8176,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -8260,7 +8284,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -354,7 +354,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -420,7 +420,9 @@
<!-- # Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- # Broadsoft Call Park. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -686,7 +688,7 @@
<!-- # Dial Plan Prefix -->
<!-- # String -->
<P66></P66>
<P66>{$grandstream_dial_prefix}</P66>
<!-- # Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- # String -->
@@ -695,7 +697,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- # Bypass Dial Plan -->
@@ -1306,7 +1308,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -1645,7 +1647,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2254,7 +2256,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -2592,7 +2594,7 @@
{if isset($grandstream_dial_plan) }
<P559>{$grandstream_dial_plan}</P559>
{else}
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P559>
<P559>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P559>
{/if}
<!-- # Bypass Dial Plan -->
@@ -2613,7 +2615,7 @@
<!-- # Matching Incoming Caller ID. Matching Rule 1 -->
<!-- # String -->
<P1500>grandstream_distinctive_ringtone_name_1</P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- # Matching Rule 1 Distinctive Ringtone -->
<!-- # -1 - No Ringtone, 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3, 4 - silent, 5 - Default Ringtone. Default is 0. -->
@@ -3203,7 +3205,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -3543,7 +3545,7 @@
{if isset($grandstream_dial_plan) }
<P659>{$grandstream_dial_plan}</P659>
{else}
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P659>
<P659>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P659>
{/if}
<!-- # Bypass Dial Plan -->
@@ -4153,7 +4155,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -4491,7 +4493,7 @@
{if isset($grandstream_dial_plan) }
<P1759>{$grandstream_dial_plan}</P1759>
{else}
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1759>
<P1759>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1759>
{/if}
<!-- # Bypass Dial Plan -->
@@ -5103,7 +5105,7 @@
<!-- # Conference URI -->
<!-- # String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- # Music On Hold URI -->
<!-- # String -->
@@ -5443,7 +5445,7 @@
{if isset($grandstream_dial_plan) }
<P1859>{$grandstream_dial_plan}</P1859>
{else}
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P1859>
<P1859>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P1859>
{/if}
<!-- # Bypass Dial Plan -->
@@ -6054,50 +6056,66 @@
<!-- # OpenVPN Enable. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_enable)}
<P7050>{$grandstream_openvpn_enable}</P7050>
{else}
<P7050>0</P7050>
{/if}
<!-- # OpenVPN Server Address -->
<!-- # String -->
<P7051></P7051>
<P7051>{$grandstream_openvpn_server}</P7051>
<!-- # OpenVPN Port. Default is 1194 -->
<!-- # Number -->
<!-- # Number -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_port)}
<P7052>{$grandstream_openvpn_port}</P7052>
{else}
<P7052>1194</P7052>
{/if}
<!-- # OpenVPN Transport. 0 - UDP, 1 - TCP. Default is 0 -->
<!-- #Number: 0, 1 -->
<!-- #Mandatory -->
{if isset($grandstream_openvpn_transport)}
<P2912>{$grandstream_openvpn_transport}</P2912>
{else}
<P2912>0</P2912>
{/if}
<!-- # OpenVPN CA -->
<!-- # String -->
<P9902></P9902>
<P9902>{$grandstream_openvpn_ca}</P9902>
<!-- # OpenVPN Certificate -->
<!-- # String -->
<P9903></P9903>
<P9903>{$grandstream_openvpn_cert}</P9903>
<!-- # OpenVPN Client Key -->
<!-- # String -->
<P9904></P9904>
<P9904>{$grandstream_openvpn_key}</P9904>
<!-- # OpenVPN Cipher Method. 0 - Blowfish, 1 - AES-128, 2 - AES-256, 3 - Triple-DES. Default is 0 -->
<!-- # Number: 0, 1, 2, 3 -->
<!-- # Mandatory -->
{if isset($grandstream_openvpn_cipher)}
<P8396>{$grandstream_openvpn_cipher}</P8396>
{else}
<P8396>0</P8396>
{/if}
<!-- # OpenVPN Username -->
<!-- # String -->
<P8394></P8394>
<P8394>{$grandstream_openvpn_username}</P8394>
<!-- # OpenVPN Password -->
<!-- # String -->
<P8395></P8395>
<P8395>{$grandstream_openvpn_password}</P8395>
<!-- # Additional Options -->
<!-- # String -->
<P8460></P8460>
<P8460>{$grandstream_openvpn_options}</P8460>
<!-- ############################################################################## -->
<!-- ## Network/SNMP Settings ## -->
@@ -6233,18 +6251,18 @@
<!-- # When set to Yes(1), it will override the configured provision path and method -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- # Additional Override DHCP Option. 0 - None, 1 - Option 150, 2 - Option 160. Default is 0 -->
<!-- # Number: 0, 1, 2 -->
<!-- # Mandatory -->
<P8337>0</P8337>
{if isset($grandstream_dhcp_option_additional_override)}<P8337>{$grandstream_dhcp_option_additional_override}</P8337>{else}<P8337>0</P8337>{/if}
<!-- # Allow DHCP Option 120 to Override SIP Server -->
<!-- # 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- # 3CX Auto Provision. 0 - No, 1 - Yes. Default is Yes -->
<!-- # Number: 0, 1 -->
@@ -6305,7 +6323,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -7581,7 +7599,7 @@
<!-- # Hide BLF Remote Status. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P8374>0</P8374>
<P8374>{$grandstream_blf_remote_status}</P8374>
<!-- # Show SIP Error Response. 0 - No, 1 - Yes. Default is 1 -->
<!-- # Number: 0, 1 -->
@@ -7908,17 +7926,21 @@
<!-- # HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P6779>0</P6779>
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>0</P1487>
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- # Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- # Number: 0, 1 -->
@@ -8123,9 +8145,7 @@
{if isset($grandstream_wallpaper_url)}
<P2916>1</P2916>
<P2917>{$grandstream_wallpaper_url}</P2917>
{else}
<P2916>0</P2916>
<P2917></P2917>
{/if}
<!-- # Color Background. Default is #000000. -->
@@ -8137,8 +8157,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver)}
<P2918>{$grandstream_screensaver}</P2918>
{else}
<P2918>1</P2918>
{/if}
<!-- # Screensaver Source. 0 - Default, 1 - USB, 2 - Download. Default is 0. ~~for GXP2140/2160/2170 only -->
@@ -8146,8 +8164,6 @@
<!-- # Mandatory -->
{if isset($grandstream_screensaver_source)}
<P6759>{$grandstream_screensaver_source}</P6759>
{else}
<P6759>0</P6759>
{/if}
<!-- # Show Date and Time. 0 - No, 1 - Yes. Default is 1 -->
@@ -8256,7 +8272,9 @@
<!-- # Speaker Ring Volume -->
<!-- # Number: 0-7. Default is 5. -->
<!-- # Mandatory -->
<P8352>5</P8352>
{if isset($grandstream_speaker_ring_volume)}
<P8352>{$grandstream_speaker_ring_volume}</P8352>
{/if}
<!-- # Notification Tone Volume -->
<!-- # Number: 0-7. Default is 5. -->
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<gs_provision version="1">
<config version="1">
<!-- Configuration Template For GXP21xx Firmware Version 1.0.5.32 -->
@@ -110,7 +110,9 @@
<!-- Feature Key Synchronization. 0 - Disabled, 1 - Enabled. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- Line-Seize Timeout (in seconds). Default is 15 -->
<!-- Number: 15 - 60 -->
<!-- Mandatory -->
@@ -120,7 +122,7 @@
<P134></P134>
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
<P2350></P2350>
@@ -301,7 +303,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default is 20 -->
@@ -322,28 +324,28 @@
<P104>0</P104>
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
<!-- Mandatory -->
@@ -557,7 +559,7 @@
<P444></P444>
<!-- Conference URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Music On Hold URI -->
<!-- String -->
<P2450></P2450>
@@ -989,7 +991,7 @@
<P544></P544>
<!-- Conference URI -->
<!-- String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- Music On Hold URI -->
<!-- String -->
<P2550></P2550>
@@ -1183,7 +1185,7 @@
<P523>0</P523>
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
@@ -1419,7 +1421,7 @@
<P644></P644>
<!-- Conference URI -->
<!-- String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- Music On Hold URI -->
<!-- String -->
<P2650></P2650>
@@ -1843,7 +1845,7 @@
<P1744></P1744>
<!-- Conference URI -->
<!-- String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- Music On Hold URI -->
<!-- String -->
<P2750></P2750>
@@ -2274,7 +2276,7 @@
<P1844></P1844>
<!-- Conference URI -->
<!-- String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- Music On Hold URI -->
<!-- String -->
<P2850></P2850>
@@ -2714,7 +2716,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -2734,12 +2736,12 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>0</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -3060,7 +3062,21 @@ Outgoing calls. 0 - No, 1 - Yes. Default is 0 -->
<!-- HEADSET Key Mode. 0 = Default Mode, 1 = Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
@@ -48,7 +48,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -72,13 +72,13 @@
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Allow DHCP Option 120 to Override SIP Server -->
<!-- 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No -->
<!-- Number: 0, 1 -->
@@ -272,7 +272,7 @@
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Music On Hold URI -->
<!-- String -->
@@ -503,7 +503,7 @@
{if isset($grandstream_dial_plan) }
<P290>{$grandstream_dial_plan}</P290>
{else}
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
{/if}
@@ -530,33 +530,33 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0. -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1489>0</P1489>
<P1489>{$grandstream_distinctive_ringtone_1}</P1489>
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1491>0</P1491>
<P1491>{$grandstream_distinctive_ringtone_2}</P1491>
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
<!-- Number: 0, 1, 2, 3 -->
<!-- Mandatory -->
<P1493>0</P1493>
<P1493>{$grandstream_distinctive_ringtone_3}</P1493>
<!-- Ring Timeout (in seconds). Default is 60 -->
<!-- Number: 30 - 3600 -->
@@ -836,7 +836,7 @@
<!-- Conference URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Music On Hold URI -->
<!-- String -->
@@ -1067,7 +1067,7 @@
{if isset($grandstream_dial_plan) }
<P459>{$grandstream_dial_plan}</P459>
{else}
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P459>
<P459>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P459>
{/if}
<!-- Delayed Call Forward Wait Time (in seconds). Default 20 -->
@@ -1399,7 +1399,7 @@
<!-- Conference URI -->
<!-- String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- Music On Hold URI -->
<!-- String -->
@@ -1647,7 +1647,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- Matching Rule 1 Distinctive Ringtone -->
<!-- 0 - system ring tone, 1 - custom ring tone 1, 2 - custom ring tone 2, 3 - custom ring tone 3. Default is 0 -->
@@ -1955,7 +1955,7 @@
<!-- Conference URI -->
<!-- String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- Music On Hold URI -->
<!-- String -->
@@ -2505,7 +2505,7 @@
<!-- Conference URI -->
<!-- String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- Music On Hold URI -->
<!-- String -->
@@ -3062,7 +3062,7 @@
<!-- Conference URI -->
<!-- String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- Music On Hold URI -->
<!-- String -->
@@ -3772,7 +3772,21 @@ Outgoing calls. 0 - No, 1 - Yes. Default is 0 -->
<!-- HEADSET Key Mode. 0 = Default Mode, 1 = Toggle Headset/Speaker. Default is 0 -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- Always Ring Speaker. 0 - No, 1 - Yes. Default is 0 -->
<!-- Number: 0, 1 -->
@@ -344,7 +344,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -367,7 +367,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -375,7 +375,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -383,7 +383,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -762,7 +762,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1190,7 +1190,7 @@ VNumber: 0, 1, 2. -->
<!-- Conference-URI -->
<!-- String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1214,7 +1214,7 @@ VNumber: 0, 1, 2. -->
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- Matching Rule 1 Distinctive Ringtone. See ring tone options and value in the Ring Tone value table below -->
<!-- String -->
@@ -1620,7 +1620,7 @@ VNumber: 0, 1, 2. -->
<!-- Conference-URI -->
<!-- String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- Account Ring Tone. See ring tone options and value in the Ring Tone value table below -->
<P623>content://settings/system/ringtone</P623>
@@ -2045,7 +2045,7 @@ Account 5 Codec Settings
<!-- Conference-URI -->
<!-- String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -2471,7 +2471,7 @@ Account 5 Codec Settings
<!-- Conference-URI -->
<!-- String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -3016,7 +3016,7 @@ Account 5 Codec Settings
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -3039,11 +3039,11 @@ Account 5 Codec Settings
<!-- DHCP Option 66 Override server. 0 - No, 1 - Yes. Default value is 1 -->
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- DHCP Option 120 Override SIP Server.0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
<P1411>1</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}{/if}
<!-- 3CX Auto Provision. 0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
@@ -3337,13 +3337,23 @@ Account 5 Codec Settings
<P1302>0</P1302>
{/if}
<!-- Headset Type. 0 - Normal Headset, 1 - Plantronics EHS. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1487>0</P1487>
<!-- Headset Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- Advanced Settings - MPK LCD Settings -->
@@ -555,7 +555,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -578,7 +578,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -586,7 +586,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -594,7 +594,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -973,7 +973,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1401,7 +1401,7 @@ VNumber: 0, 1, 2. -->
<!-- Conference-URI -->
<!-- String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1425,7 +1425,7 @@ VNumber: 0, 1, 2. -->
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- Matching Rule 1 Distinctive Ringtone. See ring tone options and value in the Ring Tone value table below -->
<!-- String -->
@@ -1831,7 +1831,7 @@ VNumber: 0, 1, 2. -->
<!-- Conference-URI -->
<!-- String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- Account Ring Tone. See ring tone options and value in the Ring Tone value table below -->
<P623>content://settings/system/ringtone</P623>
@@ -2256,7 +2256,7 @@ Account 5 Codec Settings
<!-- Conference-URI -->
<!-- String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -2682,7 +2682,7 @@ Account 5 Codec Settings
<!-- Conference-URI -->
<!-- String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -3226,7 +3226,7 @@ Account 5 Codec Settings
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -3249,11 +3249,11 @@ Account 5 Codec Settings
<!-- DHCP Option 66 Override server. 0 - No, 1 - Yes. Default value is 1 -->
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- DHCP Option 120 Override SIP Server.0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
<P1411>1</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}{/if}
<!-- 3CX Auto Provision. 0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
@@ -3547,13 +3547,23 @@ Account 5 Codec Settings
<P1302>0</P1302>
{/if}
<!-- Headset Type. 0 - Normal Headset, 1 - Plantronics EHS. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1487>0</P1487>
<!-- Headset Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- Advanced Settings - MPK LCD Settings -->
@@ -78,7 +78,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -92,7 +92,7 @@
<P235></P235>
<!-- Allow DHCP Option 66 to override server. 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No. -->
<P194>0</P194>
<!-- Check for new firmware every () minutes, unit is in minute, minimnu 60 minutes, default is 7 days. -->
@@ -251,7 +251,7 @@
<!-- Dial Plan Prefix (dial plan prefix string) -->
<P66></P66>
<!-- Dial Plan. Maxlength = 128 character. Defalut is allow all -->
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
<!-- Delayed Call Forward Wait Time. Default is 20 seconds, maxlength = 5 -->
<P139>20</P139>
<!-- Enable Call Features. 0 - no, 1 - yes -->
@@ -1385,7 +1385,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -1403,10 +1403,10 @@
<!-- DHCP Option 66 Override server. 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- DHCP Option 120 Override SIP Server. 0 - No, 1 - Yes. Default is Yes. -->
<P1411>1</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check every day, 2 - Check every week, 3 - Check at a Period Time. Default is 0. -->
<P194>0</P194>
@@ -248,7 +248,7 @@
<P66></P66>
<!-- Dial Plan Maxlength: unlimited, default is allow all -->
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
<!-- Early Dial. 0 - No, 1 - Yes. -->
<P29>0</P29>
@@ -1268,7 +1268,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -1286,10 +1286,10 @@
<!-- DHCP Option 66 Override server. 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- DHCP Option 120 Override SIP Server. 0 - No, 1 - Yes. Default is Yes. -->
<P1411>1</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check every day, 2 - Check every week, 3 - Check at a Period Time. Default is 0. -->
<P194>0</P194>
@@ -208,7 +208,7 @@
<!-- Dial Plan Prefix, MaxLength 32 -->
<P66></P66>
<!-- Dial Plan Maxlength = unlimited, default is allow all -->
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P290>
<P290>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P290>
<!-- Early Dial. 0 - No, 1 - Yes -->
<P29>0</P29>
<!-- Refer-To Use Target Contact. 0 - No, 1 - Yes -->
@@ -222,7 +222,9 @@
<!-- SPecial Feature. 100-Standard, 108-CBCOM, 109-RNK, 113-China Mobile, 114-ZTE IMS, 115-Mobotix, 116-ZTE NGN, 117-Huawei IMS. -->
<P198>100</P198>
<!-- Feature Key Synchronization. 0 - Disable (default), 1 - Broadsoft. -->
<P2325>0</P2325>
{if isset($grandstream_feature_key_sync)}
<P2325>{$grandstream_feature_key_sync}</P2325>
{/if}
<!-- Enable Call Features. 0 - No, 1 - Yes. -->
<P191>1</P191>
<!-- Delayed Call Forward Wait Time (s). Default is 20 seconds, maxlength = 5 -->
@@ -767,7 +769,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -787,9 +789,9 @@
<P235></P235>
<!-- DHCP OPtion 66 Override server. 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured Provision Path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- DHCP OPtion 120 Override SIP Server. 0 - No, 1 - Yes. Default is Yes. -->
<P1411>1</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}{/if}
<!-- 3CX Auto Provision. 0 - No, 1 - Yes. Default is No. -->
<P1414>0</P1414>
<!-- Automatic UPgrade. 0 - No, 1 - Check every day, 2 - Check every week, 3 - Check at a Period Time. Default is 0. -->
@@ -600,7 +600,7 @@
<!-- Conference URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1183,7 +1183,7 @@
<P2482>0</P2482>
<!-- Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<P459>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P459>
<P459>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P459>
<!-- Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1255,7 +1255,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1821,7 +1821,7 @@
<P2582>0</P2582>
<!-- Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<P559>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P559>
<P559>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P559>
<!-- Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1893,7 +1893,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1924,7 +1924,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- Matching Rule 1 Distinctive Ringtone. See ring tone options and value in the Ring Tone value table below -->
<!-- String -->
@@ -2462,7 +2462,7 @@
<P2682>0</P2682>
<!-- Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<P659>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P659>
<P659>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P659>
<!-- Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -2534,7 +2534,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -3101,7 +3101,7 @@
<P2782>0</P2782>
<!-- Dial Plan Maxlength: unlimited, default is allow all { x+ | *x+ | *xx*x+ } -->
<P1759>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P1759>
<P1759>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P1759>
<!-- Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -3173,7 +3173,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -3742,7 +3742,7 @@
<P2882>0</P2882>
<!-- Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<P1859>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ }</P1859>
<P1859>{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ | \p\a\r\k\+x+ }</P1859>
<!-- Refer-To Use Target Contact. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -3814,7 +3814,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -4820,7 +4820,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -4883,11 +4883,11 @@
<!-- Allow DHCP Option 43 and Option 66 to Override Server. 0 - No, 1 - Yes. Default value is 1 -->
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- DHCP Option 120 Override SIP Server. 0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
<P1411>1</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}{/if}
<!-- Allow DHCP Option 242 (Avaya IP Phones). 0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
@@ -5408,14 +5408,18 @@
<!-- Headset Type. 0 - Normal Headset, 1 - Plantronics EHS, 2 - Jabra EHS. Default value is 0 -->
<!-- Number: 0, 1 -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{else}
<P1487>0</P1487>
{/if}
<!-- Headset Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- Handset TX Gain (dB). 0 - 0, 1 - -6, 2 - +6. Default value is 0 -->
<!-- Number: 0, 1, 2 -->
@@ -359,7 +359,12 @@
<!-- SIP Transport -->
<!-- 0 - UDP , 1 - TCP, 2 - TLS. Default value is 0 -->
<!-- Number: 0, 1, 2 -->
<P130>0</P130>
{$tp=0}
{if $account.1.sip_transport == 'udp'}{$tp=0}{/if}
{if $account.1.sip_transport == 'tcp'}{$tp=1}{/if}
{if $account.1.sip_transport == 'tls'}{$tp=2}{/if}
{if $account.1.sip_transport == 'dns srv'}{$tp=1}{/if}
<P130>{$tp}</P130>
<!-- Symmetric RTP. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -555,7 +560,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2318></P2318>
<P2318>{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if}</P2318>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -578,7 +583,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1488></P1488>
<P1488>{$grandstream_distinctive_ringtone_name_1}</P1488>
<!-- Matching Rule 1 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -586,7 +591,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 2 -->
<!-- String -->
<P1490></P1490>
<P1490>{$grandstream_distinctive_ringtone_name_2}</P1490>
<!-- Matching Rule 2 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -594,7 +599,7 @@
<!-- Matching Incoming Caller ID. Matching Rule 3 -->
<!-- String -->
<P1492></P1492>
<P1492>{$grandstream_distinctive_ringtone_name_3}</P1492>
<!-- Matching Rule 3 Distinctive Ringtone. See ring tone options and value in the Ring Tone Value Table below -->
<!-- String -->
@@ -973,7 +978,7 @@
<!-- Conference-URI -->
<!-- String -->
<P2418></P2418>
<P2418>{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if}</P2418>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1401,7 +1406,7 @@ VNumber: 0, 1, 2. -->
<!-- Conference-URI -->
<!-- String -->
<P2518></P2518>
<P2518>{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if}</P2518>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -1425,7 +1430,7 @@ VNumber: 0, 1, 2. -->
<!-- Matching Incoming Caller ID. Matching Rule 1 -->
<!-- String -->
<P1500></P1500>
<P1500>{$grandstream_distinctive_ringtone_name_1}</P1500>
<!-- Matching Rule 1 Distinctive Ringtone. See ring tone options and value in the Ring Tone value table below -->
<!-- String -->
@@ -1831,7 +1836,7 @@ VNumber: 0, 1, 2. -->
<!-- Conference-URI -->
<!-- String -->
<P2618></P2618>
<P2618>{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if}</P2618>
<!-- Account Ring Tone. See ring tone options and value in the Ring Tone value table below -->
<P623>content://settings/system/ringtone</P623>
@@ -2256,7 +2261,7 @@ Account 5 Codec Settings
<!-- Conference-URI -->
<!-- String -->
<P2718></P2718>
<P2718>{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if}</P2718>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -2682,7 +2687,7 @@ Account 5 Codec Settings
<!-- Conference-URI -->
<!-- String -->
<P2818></P2818>
<P2818>{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if}</P2818>
<!-- Broadsoft Call Center. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
@@ -3225,7 +3230,7 @@ Account 5 Codec Settings
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -3248,11 +3253,11 @@ Account 5 Codec Settings
<!-- DHCP Option 66 Override server. 0 - No, 1 - Yes. Default value is 1 -->
<!-- When set to Yes(1), it will override the configured provision path and method -->
<!-- Number: 0, 1 -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- DHCP Option 120 Override SIP Server.0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
<P1411>1</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}{/if}
<!-- 3CX Auto Provision. 0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
@@ -3546,13 +3551,23 @@ Account 5 Codec Settings
<P1302>0</P1302>
{/if}
<!-- Headset Type. 0 - Normal Headset, 1 - Plantronics EHS. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1487>0</P1487>
<!-- Headset Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1312>0</P1312>
{if isset($grandstream_headset_key_mode)}
<P1312>{$grandstream_headset_key_mode}</P1312>
{/if}
<!-- # Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
{if isset($grandstream_headset_type)}
<P6779>{$grandstream_headset_type}</P6779>
<!-- # EHS Headset Ring Tone. 0 - Normal, 1 - Plantronics EHS. Default is 0 -->
<!-- # Number: 0, 1 -->
<!-- # Mandatory -->
<P1487>{$grandstream_headset_type}</P1487>
{/if}
<!-- Advanced Settings - MPK LCD Settings -->
@@ -27,425 +27,471 @@
<!-- Web/SSH Access SSH Port has no alias yet -->
<!-- Account General Settings -->
{for $line=1 to 16}
{$row=$lines.$line}
<!-- Account Active -->
<!-- Yes, No -->
<item name="account.1.enable">Yes</item>
<item name="account.{$line}.enable">{if filter_var($row.enabled, FILTER_VALIDATE_BOOLEAN)}Yes{else}No{/if}</item>
<!-- Account Name -->
<item name="account.1.name">{$account.1.display_name}</item>
<item name="account.{$line}.name">{$row.display_name}</item>
<!-- SIP Server -->
<item name="account.1.sip.server.1.address">{$account.1.server_address}</item>
<item name="account.{$line}.sip.server.1.address">{$row.server_address}</item>
<!-- SIP User ID -->
<item name="account.1.sip.userid">{$account.1.user_id}</item>
<item name="account.{$line}.sip.userid">{$row.user_id}</item>
<!-- SIP Authentication ID -->
<item name="account.1.sip.subscriber.userId">{$account.1.auth_id}</item>
<item name="account.{$line}.sip.subscriber.userId">{$row.auth_id}</item>
<!-- SIP Authentication Password -->
<item name="account.1.sip.subscriber.password">{$account.1.password}</item>
<item name="account.{$line}.sip.subscriber.password">{$row.password}</item>
<!-- Voice Mail Access Number -->
<item name="account.1.sip.voicemail.number">*97</item>
<item name="account.{$line}.sip.voicemail.number">*97</item>
<!-- Display Name -->
<item name="account.1.sip.subscriber.name">{$account.1.display_name}</item>
<item name="account.{$line}.sip.subscriber.name">{$row.display_name}</item>
<!-- Tel URI -->
<!-- Disabled, UserIsPhone, Enabled -->
<item name="account.1.sip.telUri">Disabled</item>
<item name="account.{$line}.sip.telUri">Disabled</item>
<!-- Account 1 Network Settings -->
<!-- Outbound Proxy -->
<item name="account.1.sip.outboundProxy.1.address">{$account.1.outbound_proxy_primary}</item>
<item name="account.{$line}.sip.outboundProxy.1.address">{$row.outbound_proxy_primary}</item>
<!-- Secondary Outbound Proxy -->
<item name="account.1.sip.outboundProxy.2.address">{$account.1.outbound_proxy_secondary}</item>
<item name="account.{$line}.sip.outboundProxy.2.address">{$row.outbound_proxy_secondary}</item>
<!-- DNS Mode -->
<!-- ARecord, SRV, NaptrOrSrv -->
<item name="account.1.network.dnsMode">ARecord</item>
<item name="account.{$line}.network.dnsMode">ARecord</item>
<!-- DNS SRV Fail-over Mode -->
<!-- Default, SavedOneUntilDNSTTL, SavedOneUntilNoResponse -->
<item name="account.1.network.dnsSRVFailoverMode">Default</item>
<item name="account.{$line}.network.dnsSRVFailoverMode">Default</item>
<!-- NAT Traversal -->
<!-- No, STUN, KeepAlive, UPnP, Auto, VPN -->
<item name="account.1.network.natTraversal">Auto</item>
<item name="account.{$line}.network.natTraversal">Auto</item>
<!-- Proxy-Require -->
<item name="account.1.network.proxyRequire"></item>
<item name="account.{$line}.network.proxyRequire"></item>
<!-- SIP Registration -->
<!-- Yes, No -->
<item name="account.1.sip.registration">Yes</item>
<item name="account.{$line}.sip.registration">Yes</item>
<!-- Unregister Before New Registration -->
<!-- No, Yes - All, Instance -->
<item name="account.1.sip.unregisterOnReboot">Instance</item>
<item name="account.{$line}.sip.unregisterOnReboot">Instance</item>
<!-- Register Expiration (m) -->
<item name="account.1.sip.registerExpiration">{$account.1.register_expires}</item>
<item name="account.{$line}.sip.registerExpiration">{$row.register_expires}</item>
<!-- Re-register before Expiration (s) -->
<item name="account.1.sip.registerBeforeExpiration">0</item>
<item name="account.{$line}.sip.registerBeforeExpiration">0</item>
<!-- Registration Retry Wait Time (s) -->
<item name="account.1.sip.registrationFailureRetryWaitTime">20</item>
<item name="account.{$line}.sip.registrationFailureRetryWaitTime">20</item>
<!-- Add Auth Header On RE-REGISTER tobetested -->
<!-- Yes, No -->
<item name="account.1.sip.header.authOnInitialRegister">Yes</item>
<item name="account.{$line}.sip.header.authOnInitialRegister">Yes</item>
<!-- Enable SIP OPTIONS Keep Alive -->
<item name="account.1.sip.keepAlive.enable">No</item>
<item name="account.{$line}.sip.keepAlive.enable">No</item>
<!-- SIP OPTIONS Keep Alive Interval (s) -->
<item name="account.1.sip.keepAlive.interval">30</item>
<item name="account.{$line}.sip.keepAlive.interval">30</item>
<!-- SIP OPTIONS Keep Alive Maximum Tries -->
<item name="account.1.sip.keepAlive.maxLost">3</item>
<item name="account.{$line}.sip.keepAlive.maxLost">3</item>
<!-- Subscribe for MWI -->
<!-- Yes, No -->
<item name="account.1.sip.subscribe.forMwi">No</item>
<item name="account.{$line}.sip.subscribe.forMwi">No</item>
<!-- Use Privacy Header -->
<!-- Default, No, Yes -->
<item name="account.1.sip.header.privacy">Default</item>
<item name="account.{$line}.sip.header.privacy">Default</item>
<!-- Use P-Preferred-Identity Header -->
<!-- Default, No, Yes -->
<item name="account.1.sip.header.ppi">Default</item>
<item name="account.{$line}.sip.header.ppi">Default</item>
<!-- SIP Transport -->
<!-- UDP, TCP, TlsOrTcp -->
<item name="account.1.sip.transport">{$account.1.sip_transport}</item>
<item name="account.{$line}.sip.transport">{if $row.sip_transport=='tcp'}TCP{elseif $row.sip_transport=='tls'}TlsOrTcp{else}UDP{/if}</item>
<!-- Local SIP Port -->
<item name="account.1.sip.localPort">5060</item>
<item name="account.{$line}.sip.localPort">{$row.sip_port}</item>
<!-- SIP URI Scheme When Using TLS -->
<!-- sip, sips -->
<item name="account.1.sip.uriSchemeWhenUsingTls">sip</item>
<item name="account.{$line}.sip.uriSchemeWhenUsingTls">sip</item>
<!-- Use Actual Ephemeral Port in Contact with TCP/TLS -->
<!-- No, Yes -->
<item name="account.1.sip.useActualEphemeralPortInContactWithTcpTls">No</item>
<item name="account.{$line}.sip.useActualEphemeralPortInContactWithTcpTls">No</item>
<!-- Support SIP Instance ID -->
<!-- No, Yes -->
<item name="account.1.sip.supportInstanceId">Yes</item>
<item name="account.{$line}.sip.supportInstanceId">Yes</item>
<!-- SIP T1 Timeout -->
<!-- 0.5 sec - 0_5sec, 1 sec - 1sec, 2 sec - 2sec -->
<item name="account.1.sip.timer.t1">0_5sec</item>
<item name="account.{$line}.sip.timer.t1">0_5sec</item>
<!-- SIP T2 Interval -->
<!-- 2 sec - 2sec, 4 sec - 4sec, 8 sec - 8sec -->
<item name="account.1.sip.timer.t2">4sec</item>
<item name="account.{$line}.sip.timer.t2">4sec</item>
<!-- SIP Timer D Interval (Seconds) -->
<item name="account.1.sip.timerd.interval">0</item>
<item name="account.{$line}.sip.timerd.interval">0</item>
<!-- Remove OBP from Route -->
<!-- Disable - InRoute, Enable - NotInRoute, Always - AlwaysSentTo -->
<item name="account.1.sip.outboundProxy.mode">InRoute</item>
<item name="account.{$line}.sip.outboundProxy.mode">InRoute</item>
<!-- Enable 100rel -->
<!-- No, Yes -->
<item name="account.1.sip.header.100rel">No</item>
<item name="account.{$line}.sip.header.100rel">No</item>
<!-- Enable Session Timer/Session Expiration (s) -->
<!-- Session Timer is disabled if the value is 0 -->
<item name="account.1.sip.sessionTimer.expiration">180</item>
<item name="account.{$line}.sip.sessionTimer.expiration">180</item>
<!-- Min-SE(s) -->
<item name="account.1.sip.minimumSE">90</item>
<item name="account.{$line}.sip.minimumSE">90</item>
<!-- UAC Specify Refresher -->
<!-- Omit, UAC, UAS -->
<item name="account.1.sip.sessionTimer.refresher.uacSpecify">Omit</item>
<item name="account.{$line}.sip.sessionTimer.refresher.uacSpecify">Omit</item>
<!-- UAS Specify Refresher -->
<!--UAC, UAS -->
<item name="account.1.sip.sessionTimer.refresher.uasSpecify">UAC</item>
<item name="account.{$line}.sip.sessionTimer.refresher.uasSpecify">UAC</item>
<!-- Caller Request Timer -->
<!-- No, Yes -->
<item name="account.1.sip.sessionTimer.requestTimer.caller">No</item>
<item name="account.{$line}.sip.sessionTimer.requestTimer.caller">No</item>
<!-- Callee Request Timer -->
<!-- No, Yes -->
<item name="account.1.sip.sessionTimer.requestTimer.callee">No</item>
<item name="account.{$line}.sip.sessionTimer.requestTimer.callee">No</item>
<!-- Force Timer -->
<!-- No, Yes -->
<item name="account.1.sip.sessionTimer.force">No</item>
<item name="account.{$line}.sip.sessionTimer.force">No</item>
<!-- Force INVITE -->
<!-- No, Yes -->
<item name="account.1.sip.sessionTimer.forceInvite">No</item>
<item name="account.{$line}.sip.sessionTimer.forceInvite">No</item>
<!-- Codec Settings -->
<!-- Preferred Vocoder -->
<!-- PCMU, PCMA, G_726_32, G_722, G_729AOrB, iLBC, OPUS -->
<item name="account.1.codec.choice.1">PCMU</item>
<item name="account.1.codec.choice.2">PCMA</item>
<item name="account.1.codec.choice.3">G_726_32</item>
<item name="account.1.codec.choice.4">G_722</item>
<item name="account.1.codec.choice.5">G_729AOrB</item>
<item name="account.1.codec.choice.6">iLBC</item>
<item name="account.1.codec.choice.7">OPUS</item>
<item name="account.{$line}.codec.choice.1">PCMU</item>
<item name="account.{$line}.codec.choice.2">PCMA</item>
<item name="account.{$line}.codec.choice.3">G_726_32</item>
<item name="account.{$line}.codec.choice.4">G_722</item>
<item name="account.{$line}.codec.choice.5">G_729AOrB</item>
<item name="account.{$line}.codec.choice.6">iLBC</item>
<item name="account.{$line}.codec.choice.7">OPUS</item>
<!-- Codec Negotiation Priority -->
<!-- Caller, Callee -->
<item name="account.1.codec.negotiatePriority">Callee</item>
<item name="account.{$line}.codec.negotiatePriority">Callee</item>
<!-- Use First Matching Vocoder in 200OK SDP -->
<!-- No, Yes -->
<item name="account.1.codec.useFirstMatch">No</item>
<item name="account.{$line}.codec.useFirstMatch">No</item>
<!-- iLBC Frame Size -->
<!-- 20ms, 30ms -->
<item name="account.1.codec.iLBC.frameSize">30ms</item>
<item name="account.{$line}.codec.iLBC.frameSize">30ms</item>
<!-- G726-32 ITU Payload -->
<!-- 2 - 0, Dynamic - 1 -->
<item name="account.1.codec.payloadType.g72632.ITU">1</item>
<item name="account.{$line}.codec.payloadType.g72632.ITU">1</item>
<!-- G726-32 Dynamic PT -->
<!-- Range: 96-126, default: 126 -->
<item name="account.1.codec.payloadType.g72632">126</item>
<item name="account.{$line}.codec.payloadType.g72632">126</item>
<!-- Opus Payload Type -->
<item name="account.1.codec.payloadType.opus">123</item>
<item name="account.{$line}.codec.payloadType.opus">123</item>
<!-- DTMF -->
<!-- No, Yes -->
<item name="account.1.dtmf.sendInAudio">No</item>
<item name="account.1.dtmf.sendInRtp">Yes</item>
<item name="account.1.dtmf.sendInSip">No</item>
<item name="account.{$line}.dtmf.sendInAudio">No</item>
<item name="account.{$line}.dtmf.sendInRtp">Yes</item>
<item name="account.{$line}.dtmf.sendInSip">No</item>
<!-- DTMF Payload Type -->
<item name="account.1.codec.payoadType.dtmf">101</item>
<item name="account.{$line}.codec.payoadType.dtmf">101</item>
<!-- Jitter Buffer Type -->
<!-- Fixed, Adaptive -->
<item name="account.1.audio.jitterBufferType">Adaptive</item>
<item name="account.{$line}.audio.jitterBufferType">Adaptive</item>
<!-- Enable Audio RED with FEC -->
<!-- No, Yes -->
<item name="account.1.audio.fec.enable">No</item>
<item name="account.{$line}.audio.fec.enable">No</item>
<!-- Audio FEC Payload Type -->
<!-- Range: 96-126, default: 121 -->
<item name="account.1.codec.payloadType.fec.audio">121</item>
<item name="account.{$line}.codec.payloadType.fec.audio">121</item>
<!-- Audio RED Payload Type -->
<!-- Range: 96-126, default: 124 -->
<item name="account.1.codec.payloadType.red">124</item>
<item name="account.{$line}.codec.payloadType.red">124</item>
<!-- Silence Suppression -->
<!-- No, Yes -->
<item name="account.1.audio.silenceSuppression">No</item>
<item name="account.{$line}.audio.silenceSuppression">No</item>
<!-- Voice Frames Per TX -->
<item name="account.1.audio.voiceFramePerTX">2</item>
<item name="account.{$line}.audio.voiceFramePerTX">2</item>
<!-- Enable Video FEC -->
<!-- No, Yes -->
<item name="account.1.video.fec.enable">Yes</item>
<item name="account.{$line}.video.fec.enable">Yes</item>
<!-- Enable RFC5168 Support -->
<!-- No, Yes -->
<item name="account.1.codec.rfc5168.enable">No</item>
<item name="account.{$line}.codec.rfc5168.enable">No</item>
<!-- Video FEC Mode -->
<!-- 0 , 1 -->
<item name="account.1.video.fec.mode">0</item>
<item name="account.{$line}.video.fec.mode">0</item>
<!-- FEC Payload Type -->
<!-- Range: 96-126, default: 120 -->
<item name="account.1.codec.payloadType.fec.video">120</item>
<item name="account.{$line}.codec.payloadType.fec.video">120</item>
<!-- Packetization mode -->
<!-- SingleNALUnit, Non-Interleaved -->
<!-- [Note] Prefer Non-Interleaved Mode is not supported yet -->
<item name="account.1.codec.packetizationMode">Non-Interleaved</item>
<item name="account.{$line}.codec.packetizationMode">Non-Interleaved</item>
<!-- H.264 Image Size -->
<!-- 720P, 4CIF, VGA, CIF, QVGA, QCIF -->
<item name="account.1.video.h264.imagesize">720P</item>
<item name="account.{$line}.video.h264.imagesize">720P</item>
<!-- Use H.264 Constrained Profiles -->
<!-- No, Yes -->
<item name="account.1.codec.h264.CBP.enable">No</item>
<item name="account.{$line}.codec.h264.CBP.enable">No</item>
<!-- H.264 Profile Type -->
<!-- Baseline, Main, High, BP&amp;MP&amp;HP -->
<item name="account.1.codec.H264ProfileType">BP&amp;MP&amp;HP</item>
<item name="account.{$line}.codec.H264ProfileType">BP&amp;MP&amp;HP</item>
<!-- Video Bit Rate -->
<!-- 32 - 32 kbps, 64 - 64 kbps, 96 - 96 kbps, 128 - 128 kbps, 160 - 160 kbps, 192 - 192 kbps -->
<!-- # 210 - 210 kbps, 256 - 256 kbps, 384 - 384 kbps, 512 - 512 kbps, 640 - 640 kbps, 768 - 768 kbps -->
<!-- # 1024 - 1024 kbps, 1280 - 1280 kbps, 1536 - 1536 kbps, 2048 - 2048 kbps. -->
<item name="account.1.video.bitRate">2048</item>
<item name="account.{$line}.video.bitRate">2048</item>
<!-- SDP Bandwidth Attribute -->
<!-- Standard, MediaLevel, SessionLevel, None -->
<item name="account.1.codec.SDPBandwidthAttr">MediaLevel</item>
<item name="account.{$line}.codec.SDPBandwidthAttr">MediaLevel</item>
<!-- H.264 Payload Type -->
<!-- Range: 96-126, default: 99 -->
<item name="account.1.codec.payloadType.h264">99</item>
<item name="account.{$line}.codec.payloadType.h264">99</item>
<!-- Disable BFCP -->
<!-- No, Yes -->
<item name="account.1.presentation.BFCP.enable">Yes</item>
<item name="account.{$line}.presentation.BFCP.enable">Yes</item>
<!-- Presentation H.264 Image Size -->
<!-- 1080P, 720P -->
<item name="account.1.presentation.h264.imagesize">1080P</item>
<item name="account.{$line}.presentation.h264.imagesize">1080P</item>
<!-- Presentation H.264 Profile Type -->
<!-- Baseline, Main, High, BP&amp;MP&amp;HP -->
<item name="account.1.presentation.H264ProfileType">BP&amp;MP&amp;HP</item>
<item name="account.{$line}.presentation.H264ProfileType">BP&amp;MP&amp;HP</item>
<!-- Presentation Video Bit Rate -->
<!-- 32 - 32 kbps, 64 - 64 kbps, 96 - 96 kbps, 128 - 128 kbps, 160 - 160 kbps, 192 - 192 kbps -->
<!-- # 210 - 210 kbps, 256 - 256 kbps, 384 - 384 kbps, 512 - 512 kbps, 640 - 640 kbps, 768 - 768 kbps -->
<!-- # 1024 - 1024 kbps, 1280 - 1280 kbps, 1536 - 1536 kbps, 2048 - 2048 kbps. -->
<item name="account.1.presentation.bitRate">1024</item>
<item name="account.{$line}.presentation.bitRate">1024</item>
<!-- Presentation Video Frame Rate -->
<!-- 5, 10, 15 -->
<item name="account.1.presentation.frameRate">15</item>
<item name="account.{$line}.presentation.frameRate">15</item>
<!-- BFCP Transport Protocol -->
<!-- Automatic, UDP, TCP -->
<item name="account.1.presentation.BFCP.transportProtocol">UDP</item>
<item name="account.{$line}.presentation.BFCP.transportProtocol">UDP</item>
<!-- SRTP Mode -->
<!-- Disabled, EnabledButNotForced, EnabledAndForced -->
<item name="account.1.audio.srtpMode">Disabled</item>
<item name="account.{$line}.audio.srtpMode">Disabled</item>
<!-- SRTP Key Length -->
<!-- AES128And256Bit, AES128Bit, AES256Bit -->
<item name="account.1.audio.srtpKeyLength">AES128And256Bit</item>
<item name="account.{$line}.audio.srtpKeyLength">AES128And256Bit</item>
<!-- Enable SRTP Key Life Time -->
<!-- No, Yes -->
<item name="account.1.audio.cryptoLifeTime">Yes</item>
<item name="account.{$line}.audio.cryptoLifeTime">Yes</item>
<!-- RTCP Destination -->
<item name="account.1.rtcp.destination"></item>
<item name="account.{$line}.rtcp.destination"></item>
<!-- Symmetric RTP -->
<!-- No, Yes -->
<item name="account.1.audio.symmetricRTP">No</item>
<item name="account.{$line}.audio.symmetricRTP">No</item>
<!-- RTP IP Filter -->
<!-- Disable, IPOnly, IPandPort -->
<item name="account.1.rtp.filter">Disable</item>
<item name="account.{$line}.rtp.filter">Disable</item>
<!-- Call Settings -->
<!-- Start Video Automatically -->
<!-- No, Yes -->
<item name="account.1.video.startAuto.enable">Yes</item>
<item name="account.{$line}.video.startAuto.enable">Yes</item>
<!-- Remote Video Request -->
<!-- Prompt, Accept, Deny -->
<item name="account.1.video.request">Prompt</item>
<item name="account.{$line}.video.request">Prompt</item>
<!-- Auto Answer -->
<!-- No, Yes, EnableIntercom/Paging -->
<item name="account.1.call.autoAnswer">EnableIntercom/Paging</item>
<item name="account.{$line}.call.autoAnswer">EnableIntercom/Paging</item>
<!-- Play Warning Tone for Auto Answer Intercom -->
<!-- No, Yes -->
<item name="account.1.intercom.playWarningToneForAutoAnswer">Yes</item>
<item name="account.{$line}.intercom.playWarningToneForAutoAnswer">Yes</item>
<!-- Intercom Barging -->
<!-- No, Yes -->
<item name="account.1.intercom.allowBargingByCallInfo">No</item>
<item name="account.{$line}.intercom.allowBargingByCallInfo">No</item>
<!-- Auto Preview -->
<!-- No, Yes, YeswithRinging -->
<item name="account.1.call.autoPreview">Yes</item>
<item name="account.{$line}.call.autoPreview">Yes</item>
<!-- Send Anonymous -->
<!-- No, Yes -->
<item name="account.1.call.sendAnonymous">No</item>
<item name="account.{$line}.call.sendAnonymous">No</item>
<!-- Anonymous Call Rejection -->
<!-- No, Yes -->
<item name="account.1.call.rejectAnonymousCall">No</item>
<item name="account.{$line}.call.rejectAnonymousCall">No</item>
<!-- Call Log -->
<!-- All, IncomingAndOutgoing, Disable, DonotPromptMissedCall -->
<item name="account.1.call.callLog">All</item>
<item name="account.{$line}.call.callLog">All</item>
<!-- Enable Call Features -->
<!-- No, Yes -->
<item name="account.1.featureCodes.callFeatures">No</item>
<item name="account.{$line}.featureCodes.callFeatures">No</item>
<!-- Transfer on 3 Way Conference Hangup -->
<!-- No, Yes -->
<item name="account.1.call.transferOnConferenceHangup">No</item>
<item name="account.{$line}.call.transferOnConferenceHangup">No</item>
<!-- Use # as Dial Key -->
<!-- Yes, No -->
<item name="account.1.call.keyAsSend">Yes</item>
<item name="account.{$line}.call.keyAsSend">Yes</item>
<!-- DND Call Feature On -->
<item name="account.1.featureCodes.dndOn"></item>
<item name="account.{$line}.featureCodes.dndOn"></item>
<!-- DND Call Feature Off -->
<item name="account.1.featureCodes.dndOff"></item>
<item name="account.{$line}.featureCodes.dndOff"></item>
<!-- No Key Entry Timeout (s) -->
<!-- Number: 4 - 15 -->
<item name="account.1.call.noKeyEntryTimeout">4</item>
<item name="account.{$line}.call.noKeyEntryTimeout">4</item>
<!-- Ring Timeout -->
<!-- Number: 10 - 300 -->
<item name="account.1.ring.timeout">60</item>
<item name="account.{$line}.ring.timeout">60</item>
<!-- Refer-To Use Target Contact -->
<!-- Yes, No -->
<item name="account.1.call.referToUseTargetContact">No</item>
<item name="account.{$line}.call.referToUseTargetContact">No</item>
<!-- RFC2543 Hold -->
<!-- Yes, No -->
<item name="account.1.sip.rfc2543Hold">Yes</item>
<item name="account.{$line}.sip.rfc2543Hold">Yes</item>
<!-- Dial Plan Prefix -->
<item name="account.1.call.dialplanPrefix"></item>
<item name="account.{$line}.call.dialplanPrefix"></item>
<!-- Disable DialPlan -->
<!-- # Disable DialPlan. 0 - No Selection, 1 - Dial Page, 2 - Contact, 4 - Incoming Call History, 8 - Outgoing Call History, 16 - MPK & Click2Dial. -->
<!-- # If need to check multiple selections, add the specific values for each selections together. Default value is 0 -->
<item name="account.1.call.dialplan.disableMode">0</item>
<item name="account.{$line}.call.dialplan.disableMode">0</item>
<!-- DialPlan -->
<item name="account.1.call.dialplan">{$grandstream_dial_plan}</item>
<item name="account.{$line}.call.dialplan">{$grandstream_dial_plan}</item>
<!-- Caller ID Display -->
<!-- Auto, Disabled, Header, PAIHeader -->
<!-- [Note] PAI Header is not supported yet -->
<item name="account.1.sip.callerIdDisplay">Auto</item>
<item name="account.{$line}.sip.callerIdDisplay">Auto</item>
<!-- Account Ring Tone -->
<item name="account.1.ring.ringtone">content://settings/system/ringtone</item>
<item name="account.{$line}.ring.ringtone">content://settings/system/ringtone</item>
<!-- Ignore Alert-Info Header -->
<!-- Yes, No -->
<item name="account.1.ring.ignoreSipAlertInfo">No</item>
<item name="account.{$line}.ring.ignoreSipAlertInfo">No</item>
<!-- Match Incoming Caller ID -->
<item name="account.1.ring.match.1.callerId"></item>
<item name="account.{$line}.ring.match.1.callerId"></item>
<!-- Distinctive Ring Tone -->
<item name="account.1.ring.match.1.ringtone">content://settings/system/ringtone</item>
<item name="account.{$line}.ring.match.1.ringtone">content://settings/system/ringtone</item>
<!-- Match Incoming Caller ID -->
<item name="account.1.ring.match.2.callerId"></item>
<item name="account.{$line}.ring.match.2.callerId"></item>
<!-- Distinctive Ring Tone -->
<item name="account.1.ring.match.2.ringtone">content://settings/system/ringtone</item>
<item name="account.{$line}.ring.match.2.ringtone">content://settings/system/ringtone</item>
<!-- Match Incoming Caller ID -->
<item name="account.1.ring.match.3.callerId"></item>
<item name="account.{$line}.ring.match.3.callerId"></item>
<!-- Distinctive Ring Tone -->
<item name="account.1.ring.match.3.ringtone">content://settings/system/ringtone</item>
<item name="account.{$line}.ring.match.3.ringtone">content://settings/system/ringtone</item>
<!-- ############Ring Tone Value Table###############
# Web GUI Option Value
# Use System Ring tone content://settings/system/ringtone
# Silent ringtone_silence
# Ring2_OrganDub /system/media/audio/ringtones/Ring2_OrganDub.ogg
# Big_Easy /system/media/audio/ringtones/Big_Easy.ogg
# DonMessWivlt /system/media/audio/ringtones/DonMessWivIt.ogg
# Club_Cubano /system/media/audio/ringtones/Club_Cubano.ogg
# Growl /system/media/audio/ringtones/Growl.ogg
# CrayonRock /system/media/audio/ringtones/CrayonRock.ogg
# Ring9_Nairobi /system/media/audio/ringtones/Ring9_Nairobi.ogg
# Ring10_Nassau /system/media/audio/ringtones/Ring10_Nassau.ogg
# Third_Eye /system/media/audio/ringtones/Third_Eye.ogg
# Ring1_Ding /system/media/audio/ringtones/Ring1_Ding.ogg
# Road_Trip /system/media/audio/ringtones/Road_Trip.ogg
# bellcore-dr2 /system/media/audio/ringtones/bellcore-dr2.ogg
# Ring_Digital_02 /system/media/audio/ringtones/Ring_Digital_02.ogg
# bellcore-dr3 /system/media/audio/ringtones/bellcore-dr3.ogg
# DancinFool /system/media/audio/ringtones/DancinFool.ogg
# Ring_Classic_02 /system/media/audio/ringtones/Ring_Classic_02.ogg
# Ring5_FreeFlight /system/media/audio/ringtones/Ring5_FreeFlight.ogg
# Funk_Yall /system/media/audio/ringtones/Funk_Yall.ogg
# World /system/media/audio/ringtones/World.ogg
# Ring8_MidEvilJaunt /system/media/audio/ringtones/Ring8_MidEvilJaunt.ogg
# TwirlAway /system/media/audio/ringtones/TwirlAway.ogg
# bellcore-dr4 /system/media/audio/ringtones/bellcore-dr4.ogg
# Ring6_Glacial_Groove /system/media/audio/ringtones/Ring6_Glacial_Groove.ogg
# Shes_All_That /system/media/audio/ringtones/Shes_All_That.ogg
# Ring4_EtherShake /system/media/audio/ringtones/Ring4_EtherShake.ogg
# Seville /system/media/audio/ringtones/Seville.ogg
# BussaMove /system/media/audio/ringtones/BussaMove.ogg
# Default_ringtone /system/media/audio/ringtones/Default_ringtone.ogg
# BirdLoop /system/media/audio/ringtones/BirdLoop.ogg
# MildlyAlarming /system/media/audio/ringtones/MildlyAlarming.ogg
# Terminated /system/media/audio/ringtones/Terminated.ogg
# Calypso_Steel /system/media/audio/ringtones/Calypso_Steel.ogg
# Safari /system/media/audio/ringtones/Safari.ogg
# Ring_Synth_04 /system/media/audio/ringtones/Ring_Synth_04.ogg
# Ring_Synth_02 /system/media/audio/ringtones/Ring_Synth_02.ogg
# CurveBall /system/media/audio/ringtones/CurveBall.ogg
# Enter_the_Nexus /system/media/audio/ringtones/Enter_the_Nexus.ogg
# Bollywood /system/media/audio/ringtones/Bollywood.ogg
# Champagne_Edition /system/media/audio/ringtones/Champagne_Edition.ogg
# Steppin_Out /system/media/audio/ringtones/Steppin_Out.ogg
# Ring3_Paradise_Island /system/media/audio/ringtones/Ring3_Paradise_Island.ogg
# Playa /system/media/audio/ringtones/Playa.ogg
# No_Limits /system/media/audio/ringtones/No_Limits.ogg
# LoopyLounge /system/media/audio/ringtones/LoopyLounge.ogg
# Cairo /system/media/audio/ringtones/Cairo.ogg
# Ring7_HalfwayHome /system/media/audio/ringtones/Ring7_HalfwayHome.ogg
# SilkyWay /system/media/audio/ringtones/SilkyWay.ogg
# LoveFlute /system/media/audio/ringtones/LoveFlute.ogg
# Eastern_Sky /system/media/audio/ringtones/Eastern_Sky.ogg
# bellcore-dr5 /system/media/audio/ringtones/bellcore-dr5.ogg
# Gimme_Mo_Town /system/media/audio/ringtones/Gimme_Mo_Town.ogg
# bellcore-dr1 /system/media/audio/ringtones/bellcore-dr1.ogg
# Backroad /system/media/audio/ringtones/Backroad.ogg -->
# Web GUI Option Value
# Use System Ring tone content://settings/system/ringtone
# Silent ringtone_silence
# Ring2_OrganDub /system/media/audio/ringtones/Ring2_OrganDub.ogg
# Big_Easy /system/media/audio/ringtones/Big_Easy.ogg
# DonMessWivlt /system/media/audio/ringtones/DonMessWivIt.ogg
# Club_Cubano /system/media/audio/ringtones/Club_Cubano.ogg
# Growl /system/media/audio/ringtones/Growl.ogg
# CrayonRock /system/media/audio/ringtones/CrayonRock.ogg
# Ring9_Nairobi /system/media/audio/ringtones/Ring9_Nairobi.ogg
# Ring10_Nassau /system/media/audio/ringtones/Ring10_Nassau.ogg
# Third_Eye /system/media/audio/ringtones/Third_Eye.ogg
# Ring1_Ding /system/media/audio/ringtones/Ring1_Ding.ogg
# Road_Trip /system/media/audio/ringtones/Road_Trip.ogg
# bellcore-dr2 /system/media/audio/ringtones/bellcore-dr2.ogg
# Ring_Digital_02 /system/media/audio/ringtones/Ring_Digital_02.ogg
# bellcore-dr3 /system/media/audio/ringtones/bellcore-dr3.ogg
# DancinFool /system/media/audio/ringtones/DancinFool.ogg
# Ring_Classic_02 /system/media/audio/ringtones/Ring_Classic_02.ogg
# Ring5_FreeFlight /system/media/audio/ringtones/Ring5_FreeFlight.ogg
# Funk_Yall /system/media/audio/ringtones/Funk_Yall.ogg
# World /system/media/audio/ringtones/World.ogg
# Ring8_MidEvilJaunt /system/media/audio/ringtones/Ring8_MidEvilJaunt.ogg
# TwirlAway /system/media/audio/ringtones/TwirlAway.ogg
# bellcore-dr4 /system/media/audio/ringtones/bellcore-dr4.ogg
# Ring6_Glacial_Groove /system/media/audio/ringtones/Ring6_Glacial_Groove.ogg
# Shes_All_That /system/media/audio/ringtones/Shes_All_That.ogg
# Ring4_EtherShake /system/media/audio/ringtones/Ring4_EtherShake.ogg
# Seville /system/media/audio/ringtones/Seville.ogg
# BussaMove /system/media/audio/ringtones/BussaMove.ogg
# Default_ringtone /system/media/audio/ringtones/Default_ringtone.ogg
# BirdLoop /system/media/audio/ringtones/BirdLoop.ogg
# MildlyAlarming /system/media/audio/ringtones/MildlyAlarming.ogg
# Terminated /system/media/audio/ringtones/Terminated.ogg
# Calypso_Steel /system/media/audio/ringtones/Calypso_Steel.ogg
# Safari /system/media/audio/ringtones/Safari.ogg
# Ring_Synth_04 /system/media/audio/ringtones/Ring_Synth_04.ogg
# Ring_Synth_02 /system/media/audio/ringtones/Ring_Synth_02.ogg
# CurveBall /system/media/audio/ringtones/CurveBall.ogg
# Enter_the_Nexus /system/media/audio/ringtones/Enter_the_Nexus.ogg
# Bollywood /system/media/audio/ringtones/Bollywood.ogg
# Champagne_Edition /system/media/audio/ringtones/Champagne_Edition.ogg
# Steppin_Out /system/media/audio/ringtones/Steppin_Out.ogg
# Ring3_Paradise_Island /system/media/audio/ringtones/Ring3_Paradise_Island.ogg
# Playa /system/media/audio/ringtones/Playa.ogg
# No_Limits /system/media/audio/ringtones/No_Limits.ogg
# LoopyLounge /system/media/audio/ringtones/LoopyLounge.ogg
# Cairo /system/media/audio/ringtones/Cairo.ogg
# Ring7_HalfwayHome /system/media/audio/ringtones/Ring7_HalfwayHome.ogg
# SilkyWay /system/media/audio/ringtones/SilkyWay.ogg
# LoveFlute /system/media/audio/ringtones/LoveFlute.ogg
# Eastern_Sky /system/media/audio/ringtones/Eastern_Sky.ogg
# bellcore-dr5 /system/media/audio/ringtones/bellcore-dr5.ogg
# Gimme_Mo_Town /system/media/audio/ringtones/Gimme_Mo_Town.ogg
# bellcore-dr1 /system/media/audio/ringtones/bellcore-dr1.ogg
# Backroad /system/media/audio/ringtones/Backroad.ogg -->
<!-- Account Advanced Settings -->
<!-- Check Domain Certificates -->
<!-- Yes, No -->
<item name="account.1.sip.validate.domainCertificates">No</item>
<item name="account.{$line}.sip.validate.domainCertificates">No</item>
<!-- Validate Certification Chain -->
<!-- Yes, No -->
<item name="account.1.sip.validate.certificationChain">No</item>
<item name="account.{$line}.sip.validate.certificationChain">No</item>
<!-- Validate Incoming SIP Messages -->
<!-- Yes, No -->
<item name="account.1.sip.validate.incomingMessage">No</item>
<item name="account.{$line}.sip.validate.incomingMessage">No</item>
<!-- Allow Unsolicited REFER -->
<!-- Disabled, Enabled, EnabledOrForceAuth -->
<item name="account.1.sip.allowUnsolicitedRefer">Disabled</item>
<item name="account.{$line}.sip.allowUnsolicitedRefer">Disabled</item>
<!-- Only Accept SIP Requests from Known Servers -->
<!-- Yes, No -->
<item name="account.1.sip.validate.incomingServer">No</item>
<item name="account.{$line}.sip.validate.incomingServer">No</item>
<!-- Check SIP User ID for Incoming INVITE -->
<!-- Yes, No -->
<item name="account.1.sip.validate.userIdforInvite">No</item>
<item name="account.{$line}.sip.validate.userIdforInvite">No</item>
<!-- Allow SIP Reset -->
<!-- Yes, No -->
<item name="account.1.sip.allowSipReset">No</item>
<item name="account.{$line}.sip.allowSipReset">No</item>
<!-- Authenticate Incoming INVITE -->
<!-- Yes, No -->
<item name="account.1.sip.authenticateIncomingInvite">No</item>
<item name="account.{$line}.sip.authenticateIncomingInvite">No</item>
<!-- SIP Realm Used for Challenge INVITE & NOTIFY -->
<item name="account.1.sipRealmForChallengeINVITE"></item>
<item name="account.{$line}.sipRealmForChallengeINVITE"></item>
<!-- Virtual Account Group -->
<!-- -1 - Default, 0 - 15 - Virtual Account Group 1 - 16 -->
<item name="account.1.virtualGroup">-1</item>
<item name="account.{$line}.virtualGroup">-1</item>
<!-- Special Feature -->
<!-- 100 - Standard, 102 - Broadsoft, 113 - China Mobile, 114 - ZTE IMS, 115 - Mobotix, 116 - ZTE NGN, 117 - Huawei IMS, 123 - NEC, 125 - Worldstone -->
<item name="account.1.sip.specialFeature">100</item>
<item name="account.{$line}.sip.specialFeature">100</item>
<!-- BLF Call-pickup Prefix -->
<!-- Yes, No -->
<item name="account.{$line}.sip.blf.callPickup.forcePrefix">No</item>
<!-- EventList BLF URI -->
<item name="account.{$line}.sip.blf.eventlist.uri"></item>
<!-- Force BLF Call-pickup by Prefix -->
<item name="account.{$line}.sip.blf.callPickup.prefix">**</item>
<!-- Value-added Service - Broadsoft Settings - Braodsoft Call Features -->
<!-- Feature Key Synchronization -->
<!-- No - Disable, Yes - Broadsoft -->
<item name="account.{$line}.broadsoft.syncFeatureKey">{if filter_var($grandstream_feature_key_sync, FILTER_VALIDATE_BOOLEAN)}Yes{else}No{/if}</item>
<!-- Enable BroadSoft Call Park -->
<!-- Yes, No -->
<item name="account.{$line}.broadsoft.callPark">No</item>
<!-- Conference URI -->
<item name="account.{$line}.sip.conferenceUri"></item>
<!-- BroadSoft Call Center -->
<!-- Yes, No -->
<item name="account.{$line}.broadsoft.callCenter">No</item>
<!-- Hoteling Event -->
<!-- Yes, No -->
<item name="account.{$line}.broadsoft.hoteling">No</item>
<!-- Call Center Status -->
<!-- Yes, No -->
<item name="account.{$line}.broadsoft.callCenterStatus">No</item>
<!-- Value-added Service - Broadsoft Settings - SCA -->
<!-- Enable SCA (Shared Call Appearance) -->
<!-- Yes, No -->
<item name="account.{$line}.sca.enable">{if isset($row.shared_line)}Yes{else}No{/if}</item>
<!-- Enable BargeIn -->
<!-- Yes, No -->
<item name="account.{$line}.sca.bargein.enable">{if isset($row.shared_line)}Yes{else}No{/if}</item>
<!-- Auto-filling Pickup Feature Code -->
<!-- Yes, No -->
<item name="account.{$line}.sca.autoPickup.enable">Yes</item>
<!-- Pickup Feature Code -->
<item name="account.{$line}.sca.pickupFeatureCode"></item>
<!-- Line-seize Timeout -->
<!-- Range: 15 - 60. Default: 15 -->
<item name="account.{$line}.sip.lineSeizeTimeout">15</item>
{/for}
<!-- Phone Settings - General Settings -->
<!-- Local RTP Port -->
<!-- Number: 50040 - 65535 -->
@@ -686,17 +732,21 @@
<item name="network.md5Password"></item>
<!-- Wi-Fi Settings -->
<!-- Wi-Fi Function -->
{if isset($grandstream_wifi_enable)}
<!-- No, Yes -->
<item name="wifi.enable">No</item>
<item name="wifi.enable">{if filter_var($grandstream_wifi_enable, FILTER_VALIDATE_BOOLEAN)}Yes{else}No{/if}</item>
<!-- ESSID -->
<item name="wifi.essidname"></item>
{if isset($grandstream_wifi_essid)}
<item name="wifi.essidname">{$grandstream_wifi_essid}</item>
<!-- Password -->
<item name="wifi.essidpassword"></item>
<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">None</item>
<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}
<!-- OpenVPN Settings -->
<!-- Enable OpenVPN -->
<!-- Yes, No -->
@@ -899,9 +949,9 @@
<!-- Allow, RequireAdminPassword, RequireAdminPasswordIfSrcUnknown, NotAllow -->
<item name="security.installThirdApp.permission">Allow</item>
<!-- Admin Password -->
<item name="users.admin.password">admin1</item>
<item name="users.admin.password">{if isset($admin_password)}{$admin_password}{else}admin{/if}</item>
<!-- User Password -->
<item name="users.user.password">user</item>
<item name="users.user.password">{if isset($device_password)}{$device_password}{else}user{/if}</item>
<!-- SIP TLS Certificate -->
<!-- <item name="security.certificate"></item> -->
<!-- SIP TLS Private Key -->
@@ -986,11 +1036,17 @@
<!-- TFTP, HTTP, HTTPS -->
<item name="provisioning.firmware.protocol">HTTP</item>
<!-- Firmware Server Path -->
<item name="provisioning.firmware.serverPath"></item>
{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>
{/if}
<!-- HTTP/HTTPS User Name -->
<item name="provisioning.firmware.username"></item>
<item name="provisioning.firmware.username">{$http_auth_username}</item>
<!-- HTTP/HTTPS Password -->
<item name="provisioning.firmware.password"></item>
<item name="provisioning.firmware.password">{$http_auth_password}</item>
<!-- Firmware File Prefix -->
<item name="provisioning.firmware.filePrefix"></item>
<!-- Firmware File Postfix -->
@@ -999,11 +1055,17 @@
<!-- TFTP, HTTP, HTTPS -->
<item name="provisioning.config.protocol">HTTP</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>
{/if}
<!-- HTTP/HTTPS User Name -->
<item name="provisioning.config.username"></item>
<item name="provisioning.config.username">{$http_auth_username}</item>
<!-- HTTP/HTTPS Password -->
<item name="provisioning.config.password"></item>
<item name="provisioning.config.password">{$http_auth_password}</item>
<!-- Config File Prefix -->
<item name="provisioning.config.filePrefix"></item>
<!-- Config File Postfix -->
@@ -1081,58 +1143,6 @@
<!-- Show Display Name from Server -->
<!-- Yes, No -->
<item name="pks.mpk.showNamefromServer.enable">No</item>
<!-- BLF Call-pickup Prefix -->
<!-- Yes, No -->
<item name="account.1.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.2.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.3.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.4.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.5.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.6.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.7.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.8.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.9.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.10.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.11.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.12.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.13.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.14.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.15.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.16.sip.blf.callPickup.forcePrefix">No</item>
<!-- EventList BLF URI -->
<item name="account.1.sip.blf.eventlist.uri"></item>
<item name="account.2.sip.blf.eventlist.uri"></item>
<item name="account.3.sip.blf.eventlist.uri"></item>
<item name="account.4.sip.blf.eventlist.uri"></item>
<item name="account.5.sip.blf.eventlist.uri"></item>
<item name="account.6.sip.blf.eventlist.uri"></item>
<item name="account.7.sip.blf.eventlist.uri"></item>
<item name="account.8.sip.blf.eventlist.uri"></item>
<item name="account.9.sip.blf.eventlist.uri"></item>
<item name="account.10.sip.blf.eventlist.uri"></item>
<item name="account.11.sip.blf.eventlist.uri"></item>
<item name="account.12.sip.blf.eventlist.uri"></item>
<item name="account.13.sip.blf.eventlist.uri"></item>
<item name="account.14.sip.blf.eventlist.uri"></item>
<item name="account.15.sip.blf.eventlist.uri"></item>
<item name="account.16.sip.blf.eventlist.uri"></item>
<!-- Force BLF Call-pickup by Prefix -->
<item name="account.1.sip.blf.callPickup.prefix">**</item>
<item name="account.2.sip.blf.callPickup.prefix">**</item>
<item name="account.3.sip.blf.callPickup.prefix">**</item>
<item name="account.4.sip.blf.callPickup.prefix">**</item>
<item name="account.5.sip.blf.callPickup.prefix">**</item>
<item name="account.6.sip.blf.callPickup.prefix">**</item>
<item name="account.7.sip.blf.callPickup.prefix">**</item>
<item name="account.8.sip.blf.callPickup.prefix">**</item>
<item name="account.9.sip.blf.callPickup.prefix">**</item>
<item name="account.10.sip.blf.callPickup.prefix">**</item>
<item name="account.11.sip.blf.callPickup.prefix">**</item>
<item name="account.12.sip.blf.callPickup.prefix">**</item>
<item name="account.13.sip.blf.callPickup.prefix">**</item>
<item name="account.14.sip.blf.callPickup.prefix">**</item>
<item name="account.15.sip.blf.callPickup.prefix">**</item>
<item name="account.16.sip.blf.callPickup.prefix">**</item>
<!-- Applications - Contacts - General settings -->
<!-- Sort Phonebook by -->
<!-- LastName, FirstName -->
@@ -1208,65 +1218,31 @@
<!-- LDAP Dialing Default Account -->
<!-- Default - 0, Account 1 - 1, Account 2 - 2 ... -->
<item name="ldap.defalutAccount">0</item>
<!-- Value-added Service - Broadsoft Settings - Braodsoft Call Features -->
<!-- Feature Key Synchronization -->
<!-- No - Disable, Yes - Broadsoft -->
<item name="account.1.broadsoft.syncFeatureKey">No</item>
<!-- Enable BroadSoft Call Park -->
<!-- Yes, No -->
<item name="account.1.broadsoft.callPark">No</item>
<!-- Conference URI -->
<item name="account.1.sip.conferenceUri"></item>
<!-- BroadSoft Call Center -->
<!-- Yes, No -->
<item name="account.1.broadsoft.callCenter">No</item>
<!-- Hoteling Event -->
<!-- Yes, No -->
<item name="account.1.broadsoft.hoteling">No</item>
<!-- Call Center Status -->
<!-- Yes, No -->
<item name="account.1.broadsoft.callCenterStatus">No</item>
<!-- Value-added Service - Broadsoft Settings - SCA -->
<!-- Enable SCA (Shared Call Appearance) -->
<!-- Yes, No -->
<item name="account.1.sca.enable">No</item>
<!-- Enable BargeIn -->
<!-- Yes, No -->
<item name="account.1.sca.bargein.enable">No</item>
<!-- Auto-filling Pickup Feature Code -->
<!-- Yes, No -->
<item name="account.1.sca.autoPickup.enable">Yes</item>
<!-- Pickup Feature Code -->
<item name="account.1.sca.pickupFeatureCode"></item>
<!-- Line-seize Timeout -->
<!-- Range: 15 - 60. Default: 15 -->
<item name="account.1.sip.lineSeizeTimeout">15</item>
<!--#############################################-->
<!--# 160 MPKs can be configured via MPK APP #-->
<!--#############################################-->
<!-- [Note] MPK provision needs reboot to take effect -->
{$keyIndex=1}
<!-- MPK Key Mode -->
<!-- SpeedDial, BLF, SpeedDialViaActiveAccount, DialDTMF, Intercom, Transfer, CallPark, MulticastPaging, Conference, DialPrefix -->
<item name="pks.mpk.1.mode">SpeedDial</item>
{$key_types=["none"=>"","speed dial"=>"SpeedDial","blf"=>"BLF","speed dial active"=>"SpeedDialViaActiveAccount","dial dtmf"=>"DialDTMF","intercom"=>"Intercom","transfer"=>"Transfer","call park"=>"CallPark","multicast paging"=>"MulticastPaging","conference"=>"Conference"]}
{foreach $keys as $category => $rows}
{foreach $rows as $row}
{if isset($row.device_key_type)}
<item name="pks.mpk.{$keyIndex}.mode">{$key_types[$row.device_key_type]}</item>
<!-- MPK Account -->
<!-- Account1, Account2, ... , Account16 -->
<item name="pks.mpk.1.account">Account1</item>
<item name="pks.mpk.{$keyIndex}.account">Account{$row.device_key_line}</item>
<!-- MPK Display Name -->
<item name="pks.mpk.1.description"></item>
<item name="pks.mpk.{$keyIndex}.description">{$row.device_key_label}</item>
<!-- MPK User ID -->
<!-- extendValue may be used based on MPK mode -->
<item name="pks.mpk.1.value"></item>
<item name="pks.mpk.1.extendValue"></item>
<item name="pks.mpk.2.mode">SpeedDial</item>
<item name="pks.mpk.2.account">Account1</item>
<item name="pks.mpk.2.description"></item>
<item name="pks.mpk.2.value"></item>
<item name="pks.mpk.2.extendValue"></item>
<item name="pks.mpk.{$keyIndex}.value">{$row.device_key_value}</item>
<item name="pks.mpk.{$keyIndex}.extendValue">device_key_extension</item>
{$keyIndex=$keyIndex+1}
{/if}
{/foreach}
{/foreach}
</config>
</gs_provision>
File diff suppressed because it is too large Load Diff
@@ -580,7 +580,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -26,7 +26,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -26,7 +26,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -63,7 +63,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -98,7 +98,7 @@
<!-- Number: 0,1 -->
<!-- Mandatory -->
<!-- Reboot required -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check daily, 2 - Check weekly, 3 - Check every () minutes. Default is No. -->
<!-- Number: 0,1,2,3 -->
<!-- Mandatory -->
@@ -539,7 +539,7 @@
{if isset($grandstream_dial_plan) }
<P4200>{$grandstream_dial_plan}</P4200>
{else}
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P4200>
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P4200>
{/if}
<!-- SUBSCRIBE for MWI. 0 - No, 1 - Yes. -->
@@ -43,7 +43,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -57,7 +57,7 @@
<P235></P235>
<!-- Allow DHCP Option 66 to override server. 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Yes. Default is No. -->
<P194>0</P194>
<!-- Check for new firmware every () minutes, unit is in minute, minimnu 60 minutes, default is 7 days. -->
@@ -567,7 +567,7 @@
{if isset($grandstream_dial_plan) }
<P3331>{$grandstream_dial_plan}</P3331>
{else}
<P3331>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P3331>
<P3331>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P3331>
{/if}
<!-- Hookflash Duration (X10ms). Default 60. -->
@@ -171,7 +171,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -196,7 +196,7 @@
<!-- Number: 0,1 -->
<!-- Mandatory -->
<!-- Reboot required -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check daily, 2 - Check weekly, 3 - Check every () minutes. Default is No. -->
<!-- Number: 0,1,2,3 -->
@@ -1021,7 +1021,7 @@
{if isset($grandstream_dial_plan) }
<P4200>{$grandstream_dial_plan}</P4200>
{else}
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P4200>
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P4200>
{/if}
<!-- Use # as Dial Key (if set to Yes, "#" will function as the "(Re-)Dial" key). 0 - no, 1 - yes -->
@@ -53,7 +53,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -73,7 +73,7 @@
<P235></P235>
<!-- Allow DHCP Option 66 to override server. 0 - No, 1 - Yes. Default is Yes. -->
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check daily, 2 - Check weekly, 3 - Check every () minutes. Default is No. -->
<P194>0</P194>
<!-- Check for new firmware/config file every () minutes, unit is in minute, minimum 60 minutes, default is 7 days. -->
@@ -334,7 +334,7 @@
{if isset($grandstream_dial_plan) }
<P4200>{$grandstream_dial_plan}</P4200>
{else}
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P4200>
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P4200>
{/if}
<!-- SUBSCRIBE for MWI. 0 - No, 1 - Yes -->
@@ -150,7 +150,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -187,7 +187,7 @@
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<!-- Reboot required -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check daily, 2 - Check weekly, 3 - Check every () minutes. Default is No. -->
<!-- Number: 0, 1, 2, 3 -->
@@ -693,7 +693,7 @@
{if isset($grandstream_dial_plan) }
<P4200>{$grandstream_dial_plan}</P4200>
{else}
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P4200>
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P4200>
{/if}
<!-- SUBSCRIBE for MWI. 0 - No, 1 - Yes -->
@@ -75,7 +75,7 @@
<P237></P237>
{elseif isset($grandstream_config_server_path)}
<P237>{$grandstream_config_server_path}</P237>
{else}
{elseif isset($domain_name)}
<P237>{$domain_name}{$project_path}/app/provision</P237>
{/if}
@@ -112,7 +112,7 @@
<!-- When set to Yes(1), it will override the configured provision path and method. -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P145>1</P145>
{if isset($grandstream_dhcp_option_override)}<P145>{$grandstream_dhcp_option_override}</P145>{else}<P145>1</P145>{/if}
<!-- Automatic Upgrade. 0 - No, 1 - Check daily, 2 - Check weekly, 3 - Check every () minutes. Default is No. -->
<!-- Number: 0, 1, 2, 3 -->
@@ -300,7 +300,7 @@
<!-- Allow DHCP Option 120( override SIP server ) 0 - No, 1 - Yes. -->
<!-- Number: 0, 1 -->
<!-- Mandatory -->
<P1411>0</P1411>
{if isset($grandstream_dhcp_option_override_sip_server)}<P1411>{$grandstream_dhcp_option_override_sip_server}</P1411>{else}<P1411>0</P1411>{/if}
<!-- SIP Transport 0 - UDP, 1 - TCP, 2 - TLS -->
<!-- Number: 0, 1, 2 -->
@@ -620,7 +620,7 @@
{if isset($grandstream_dial_plan) }
<P4200>{$grandstream_dial_plan}</P4200>
{else}
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+| \f\l\o\w\+*x+}{/literal}</P4200>
<P4200>{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</P4200>
{/if}
<!-- SUBSCRIBE for MWI. 0 - No, 1 - Yes -->

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