Portions created by the Initial Developer are Copyright (C) 2016-2019 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane Matthew Vale */ class ringbacks { //define variables public $domain_uuid; public $ringtones_list; private $tones_list; private $music_list; private $recordings_list; private $default_ringback_label; private $streams; //class constructor public function __construct() { //set the domain_uuid $this->domain_uuid = $_SESSION['domain_uuid']; //add multi-lingual support $language = new text; $text = $language->get(); //get the ringtones $sql = "select * from v_vars "; $sql .= "where var_category = 'Ringtones' "; $sql .= "order by var_name asc "; $database = new database; $ringtones = $database->select($sql, null, 'all'); if (!empty($ringtones)) { foreach ($ringtones as $ringtone) { $ringtone = $ringtone['var_name']; if (isset($text['label-'.$ringtone])) { $label = $text['label-'.$ringtone]; } else { $label = $ringtone; } $ringtones_list[$ringtone] = $label; } } $this->ringtones_list = $ringtones_list ?? ''; unset($sql, $ringtones, $ringtone, $ringtones_list); //get the default_ringback label /* $sql = "select * from v_vars where var_name = 'ringback' "; $database = new database; $row = $database->select($sql, null, 'row'); unset($sql); $default_ringback = (string) $row['var_value']; $default_ringback = preg_replace('/\A\$\${/',"",$default_ringback); $default_ringback = preg_replace('/}\z/',"",$default_ringback); #$label = $text['label-'.$default_ringback]; #if($label == "") { $label = $default_ringback; #} $this->default_ringback_label = $label; unset($results, $default_ringback, $label); */ //get the tones $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')) { $music = new switch_music_on_hold; $this->music_list = $music->get(); } if (is_dir($_SERVER["PROJECT_ROOT"].'/app/recordings')) { $recordings = new switch_recordings; $this->recordings_list = $recordings->list_recordings(); } if (is_dir($_SERVER["PROJECT_ROOT"].'/app/streams')) { $sql = "select * from v_streams "; $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; $sql .= "and stream_enabled = 'true' "; $sql .= "order by stream_name asc "; $parameters['domain_uuid'] = $this->domain_uuid; $database = new database; $streams = $database->select($sql, $parameters, 'all'); $this->streams = $streams; unset($sql, $parameters, $streams, $row); } } public function valid($value) { foreach($this->ringtones_list as $ringtone_value => $ringtone_name) { if ($value == "\${".$ringtone_value."}") { return true; } } foreach($this->tones_list as $tone_value => $tone_name) { if ($value == "\${".$tone_value."}") { return true; } } foreach($this->music_list as $row) { $name = ''; if (!empty($row['domain_uuid'])) { $name = $row['domain_name'].'/'; } $name .= $row['music_on_hold_name']; if ($value == "local_stream://".$name) { return true; } } foreach($this->recordings_list as $recording_value => $recording_name) { if ($value == $recording_value) { return true; } } foreach($this->streams as $row) { if ($value == $row['stream_location']) { return true; } } return false; } public function select($name, $selected) { //add multi-lingual support $language = new text; $text = $language->get(); //start the select $select = "\n"; return $select; } }