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 .= " "; + foreach($this->tones_list as $tone_value => $tone_name) { + $select .= " \n"; + } + $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 + + + + + + +