diff --git a/app/tones/app_config.php b/app/tones/app_config.php
new file mode 100644
index 0000000000..20b73593ca
--- /dev/null
+++ b/app/tones/app_config.php
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/vars/app_defaults.php b/app/vars/app_defaults.php
index 2d2aa11cbd..0d3c63d60e 100644
--- a/app/vars/app_defaults.php
+++ b/app/vars/app_defaults.php
@@ -238,6 +238,21 @@ EOD;
}
$result[] = $row;
}
+ elseif(preg_match("/-tone/", $value[0])){
+ $row = Array();
+ $row['var_cat'] = 'Tones';
+ $row['var_name'] = $value[0];
+ $row['var_value'] = $value[1];
+ $row['var_enabled'] = $item->attributes()->enabled;
+ if(!isset($row['var_enabled'])){
+ $row['var_enabled'] = 'true';
+ }
+ $row['var_description'] = $item->attributes()->description;
+ if(!isset($row['var_description'])){
+ $row['var_description'] = base64_encode('Imported from vars.xml');
+ }
+ $result[] = $row;
+ }
}
}
diff --git a/resources/app_languages.php b/resources/app_languages.php
index eb2ed8328f..306fa0430b 100644
--- a/resources/app_languages.php
+++ b/resources/app_languages.php
@@ -732,6 +732,19 @@ $text['label-ringback']['de-at'] = "Zurückrufen";
$text['label-ringback']['he'] = "לצלצל בחזרה";
$text['label-ringback']['ru-ru'] = "Перезвонить";
+$text['label-tone']['en-us'] = "Tone";
+$text['label-tone']['es-cl'] = "Tono";
+$text['label-tone']['pt-pt'] = "Tom";
+$text['label-tone']['pt-br'] = "Tom";
+$text['label-tone']['pl'] = "Ton";
+$text['label-tone']['fr-fr'] = "Ton";
+$text['label-tone']['nl-nl'] = "Toon";
+$text['label-tone']['sv-se'] = "Tona";
+$text['label-tone']['uk'] = "Тон";
+$text['label-tone']['de-at'] = "Ton";
+$text['label-tone']['he'] = "טוֹן";
+$text['label-tone']['ru-ru'] = "Тон";
+
$text['label-music_on_hold']['en-us'] = "Music on Hold";
$text['label-music_on_hold']['es-cl'] = "Musica en Espera";
$text['label-music_on_hold']['pt-pt'] = "Música em Espera";
diff --git a/resources/classes/ringbacks.php b/resources/classes/ringbacks.php
index b387d18ff2..210f22b4b9 100644
--- a/resources/classes/ringbacks.php
+++ b/resources/classes/ringbacks.php
@@ -31,6 +31,7 @@ if (!class_exists('ringbacks')) {
//define variables
public $db;
private $ringbacks;
+ private $tones_list;
private $music_list;
private $recordings_list;
private $default_ringback_label;
@@ -86,6 +87,11 @@ if (!class_exists('ringbacks')) {
unset($results, $default_ringback, $label);
*/
+ //get the tones
+ require_once "resources/classes/tones.php";
+ $tones = new tones;
+ $this->tones_list = $tones->tones_list();
+
//get music on hold and recordings
if (is_dir($_SERVER["PROJECT_ROOT"].'/app/music_on_hold')) {
require_once "app/music_on_hold/resources/classes/switch_music_on_hold.php";
@@ -148,6 +154,19 @@ if (!class_exists('ringbacks')) {
unset($selected_ringback);
}
+ //tones
+ if (sizeof($this->tones_list) > 0) {
+ $selected_tone = $selected;
+ $selected_tone = preg_replace('/\A\${/',"",$selected_tone);
+ $selected_tone = preg_replace('/}\z/',"",$selected_tone);
+ $select .= " \n";
+ unset($selected_tone);
+ }
+
//end the select and return it
$select .= "\n";
return $select;
diff --git a/resources/classes/tones.php b/resources/classes/tones.php
new file mode 100644
index 0000000000..f27fd7ec6d
--- /dev/null
+++ b/resources/classes/tones.php
@@ -0,0 +1,79 @@
+
+ Portions created by the Initial Developer are Copyright (C) 2016
+ the Initial Developer. All Rights Reserved.
+
+ Contributor(s):
+ Mark J Crane
+ Matthew Vale
+*/
+
+if (!class_exists('tones')) {
+ class tones {
+
+ //define variables
+ public $db;
+ private $tones;
+ private $music_list;
+ private $recordings_list;
+ private $default_tone_label;
+
+ //class constructor
+ public function __construct() {
+ //connect to the database if not connected
+ if (!$this->db) {
+ require_once "resources/classes/database.php";
+ $database = new database;
+ $database->connect();
+ $this->db = $database->db;
+ }
+
+ //add multi-lingual support
+ $language = new text;
+ $text = $language->get();
+
+ //get the tones
+ $sql = "select * from v_vars ";
+ $sql .= "where var_cat = 'Tones' ";
+ $sql .= "order by var_name asc ";
+ $prep_statement = $this->db->prepare(check_sql($sql));
+ $prep_statement->execute();
+ $tones = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+ unset ($prep_statement, $sql);
+ foreach($tones as $tone) {
+ $tone = $tone['var_name'];
+ $label = $text['label-'.$tone];
+ if ($label == "") {
+ $label = $tone;
+ }
+ $tone_list[$tone] = $label;
+ }
+ $this->tones = $tone_list;
+ unset($tone_list);
+
+ }
+
+ public function tones_list() {
+ return $this->tones;
+ }
+ }
+}
+
+?>
diff --git a/resources/templates/conf/vars.xml b/resources/templates/conf/vars.xml
index 67c2b3b0eb..7ee23ed0d1 100644
--- a/resources/templates/conf/vars.xml
+++ b/resources/templates/conf/vars.xml
@@ -80,6 +80,13 @@ where fs.mydomain.com is a DNS A record-useful when fs is on a dynamic IP addres
+
+
+
+
+
+
+