parent
49fd2cc3c4
commit
2a1f098246
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
//application details
|
||||
$apps[$x]['name'] = "Tones";
|
||||
$apps[$x]['uuid'] = "38ab9f01-bcd2-4726-a9ff-9af8ed9e396a";
|
||||
$apps[$x]['category'] = "Switch";;
|
||||
$apps[$x]['subcategory'] = "";
|
||||
$apps[$x]['version'] = "";
|
||||
$apps[$x]['license'] = "Mozilla Public License 1.1";
|
||||
$apps[$x]['url'] = "http://www.fusionpbx.com";
|
||||
$apps[$x]['description']['en-us'] = "Manage Tones";
|
||||
|
||||
//destination details
|
||||
$y = 0;
|
||||
$apps[$x]['destinations'][$y]['type'] = "sql";
|
||||
$apps[$x]['destinations'][$y]['label'] = "tones";
|
||||
$apps[$x]['destinations'][$y]['name'] = "tones";
|
||||
$apps[$x]['destinations'][$y]['sql'] = "select var_uuid as uuid, var_name as name, var_value as destination, var_description as description from v_vars";
|
||||
$apps[$x]['destinations'][$y]['where'] = "where var_cat = 'Tones' ";
|
||||
$apps[$x]['destinations'][$y]['order_by'] = "var_name asc";
|
||||
$apps[$x]['destinations'][$y]['field']['uuid'] = "var_uuid";
|
||||
$apps[$x]['destinations'][$y]['field']['name'] = "var_name";
|
||||
$apps[$x]['destinations'][$y]['field']['destination'] = "var_filename";
|
||||
$apps[$x]['destinations'][$y]['field']['description'] = "var_description";
|
||||
$apps[$x]['destinations'][$y]['select_value']['dialplan'] = "play tone_stream://\${destination}";
|
||||
$apps[$x]['destinations'][$y]['select_value']['ivr'] = "play tone_stream://\${destination}";
|
||||
$apps[$x]['destinations'][$y]['select_label'] = "\${name}";
|
||||
|
||||
?>
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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 .= " <optgroup label='".$text['label-tone']."'>";
|
||||
foreach($this->tones_list as $tone_value => $tone_name) {
|
||||
$select .= " <option value='\${".$tone_value."}'".(($selected_tone == $tone_value) ? ' selected="selected"' : '').">".$tone_name."</option>\n";
|
||||
}
|
||||
$select .= " </optgroup>\n";
|
||||
unset($selected_tone);
|
||||
}
|
||||
|
||||
//end the select and return it
|
||||
$select .= "</select>\n";
|
||||
return $select;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
/*
|
||||
FusionPBX
|
||||
Version: MPL 1.1
|
||||
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
The Original Code is FusionPBX
|
||||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2016
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Matthew Vale <github@mafoo.org>
|
||||
*/
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -80,6 +80,13 @@ where fs.mydomain.com is a DNS A record-useful when fs is on a dynamic IP addres
|
|||
<X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440,480)" />
|
||||
<X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)" />
|
||||
|
||||
<!-- Tones -->
|
||||
<X-PRE-PROCESS cmd="set" data="vacant-us-tone=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)" />
|
||||
<X-PRE-PROCESS cmd="set" data="vacant-uk-tone=%(330,15,950);%(330,15,1400);%(330,1000,1800)" />
|
||||
<X-PRE-PROCESS cmd="set" data="busy-us-tone=%(500,500,480,620)" />
|
||||
<X-PRE-PROCESS cmd="set" data="busy-au-tone=v=-13;%(375,375,420);v=-23;%(375,375,420)" />
|
||||
<X-PRE-PROCESS cmd="set" data="bong-us-tone=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)" />
|
||||
|
||||
<!-- SIP -->
|
||||
<!-- Used to turn on sip loopback unrolling. -->
|
||||
<X-PRE-PROCESS cmd="set" data="unroll_loops=true" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue