function getAmpAdminUsers() { global $db; $sql = "SELECT username FROM ampusers WHERE sections='*'"; $results = $db->getAll($sql); db_e($results); return $results; }
function backup_del_template($id) { global $db; $data = backup_get_template($id); //dont delete if deleting has been blocked if ($data['immortal'] == 'true') { return $id; } $sql = 'DELETE FROM backup_templates WHERE id = ?'; $ret = $db->query($sql, $id); db_e($ret); $sql = 'DELETE FROM backup_template_details WHERE template_id = ?'; $ret = $db->query($sql, $id); db_e($ret); /*todo: select servers from backups $sql = 'DELETE FROM backup_details WHERE server = ?'; $ret = $db->query($sql, $id); if ($db->IsError($ret)){ die_freepbx($ret->getDebugInfo()); }*/ return ''; }
$db_name = "`{$db_name}`"; } if ($db_table_name[0] !== '`') { $db_table_name = "`{$db_table_name}`"; } // For use in encrypt-decrypt of path and filename for the recordings include_once "crypt.php"; switch ($action) { case 'cdr_play': case 'cdr_audio': include_once "{$action}.php"; exit; break; case 'download_audio': $file = $dbcdr->getOne('SELECT recordingfile FROM ' . $db_name . '.' . $db_table_name . ' WHERE uniqueid = ?', array($_REQUEST['cdr_file'])); db_e($file); if ($file) { $rec_parts = explode('-', $file); $fyear = substr($rec_parts[3], 0, 4); $fmonth = substr($rec_parts[3], 4, 2); $fday = substr($rec_parts[3], 6, 2); $monitor_base = $amp_conf['MIXMON_DIR'] ? $amp_conf['MIXMON_DIR'] : $amp_conf['ASTSPOOLDIR'] . '/monitor'; $file = pathinfo($file, PATHINFO_EXTENSION) == 'wav49' ? pathinfo($file, PATHINFO_FILENAME) . '.WAV' : $file; $file = "{$monitor_base}/{$fyear}/{$fmonth}/{$fday}/" . $file; download_file($file, '', '', true); } exit; break; default: break; }
function restapi_user_del_token($token) { global $db; $sql = 'DELETE FROM restapi_token_user_mapping WHERE token_id = ?'; $ret = $db->query($sql, array($token)); db_e($ret); return true; }
function fax_get_user($faxext = '') { global $db; if ($faxext) { $sql = "SELECT * FROM fax_users WHERE user = ?"; $settings = $db->getRow($sql, array($faxext), DB_FETCHMODE_ASSOC); db_e($settings); if (is_array($settings)) { $o = \FreePBX::Userman()->getUserByID($settings['user']); if (empty($o)) { return array(); } } else { return array(); } } else { $sql = "SELECT * FROM fax_users"; $settings = $db->getAll($sql, DB_FETCHMODE_ASSOC); db_e($settings); $final = array(); if (is_array($settings)) { foreach ($settings as $setting) { if (!empty($setting)) { $o = \FreePBX::Userman()->getUserByID($setting['user']); if (!empty($o)) { $final[] = $setting; } } } $settings = $final; } else { return array(); } } return $settings; }
function paging_set_autoanswer_defaults($data) { global $db; $put = array(); if (!is_array($data)) { return false; } foreach ($data as $k => $v) { $put[] = array('default', $k, $v); } if (!empty($put)) { $sql = "REPLACE INTO paging_autoanswer (useragent, var, setting) VALUES (?, ?, ?)"; $sql = $db->prepare($sql); $res = $db->executeMultiple($sql, $put); db_e($res); return true; } return false; }
/** * Saves logfile related settings */ function logfiles_put_opts($opts) { global $db, $amp_conf; $has_security_option = version_compare($amp_conf['ASTVERSION'], '11.0', 'ge'); //save options foreach ($opts as $k => $v) { switch ($k) { case 'appendhostname': case 'dateformat': case 'queue_log': case 'rotatestrategy': $data[] = array($k, $v); break; default: break; //do nothing } } //dbug('save settings', $data); $sql = $db->prepare('REPLACE INTO logfile_settings (`key`, value) VALUES (?, ?)'); $ret = $db->executeMultiple($sql, $data); db_e($ret); unset($data); //save log files foreach ($opts['logfiles'] as $item => $values) { foreach ($values as $index => $v) { $logs[$index][$item] = $v; if (!$has_security_option) { $logs[$index]['security'] = 'off'; } } } //ensure the order of our array is correct foreach ($logs as $k => $l) { $data = array('name' => $l['name'], 'debug' => $l['debug'], 'dtmf' => $l['dtmf'], 'error' => $l['error'], 'fax' => $l['fax'], 'notice' => $l['notice'], 'verbose' => $l['verbose'], 'warning' => $l['warning'], 'security' => $l['security']); $logData[] = array_values($data); } sql('TRUNCATE logfile_logfiles'); $sql = $db->prepare('INSERT INTO logfile_logfiles (name, debug, dtmf, error, fax, notice, verbose, warning, security) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'); $ret = $db->executeMultiple($sql, $logData); db_e($ret); needreload(); return true; }
return false; } $first_install = db_e($db->getAll('SELECT * FROM xmpp_options'), ''); //prosody creates this on startup but just to be safe we should as well $sql[] = "CREATE TABLE IF NOT EXISTS `prosody` (\n `host` text,\n `user` text,\n `store` text,\n `key` text,\n `type` text,\n `value` mediumtext,\n KEY `prosody_index` (`host`(20),`user`(20),`store`(20),`key`(20))\n)"; $sql[] = "CREATE TABLE IF NOT EXISTS `xmpp_users` (\n `user` varchar(50) NOT NULL default '',\n `username` varchar(50) default NULL,\n `password` varchar(50) default NULL,\n PRIMARY KEY (`user`)\n)"; $sql[] = "CREATE TABLE IF NOT EXISTS `xmpp_options` (\n `keyword` varchar(75) NOT NULL default '',\n `value` text,\n PRIMARY KEY (`keyword`)\n)"; if ($first_install) { $sql[] = 'INSERT INTO xmpp_options (keyword, value) VALUES ("dirty", "true"), ("domain", "localhost") '; } $sql[] = 'REPLACE INTO xmpp_options (keyword, value) VALUES ("dirty", "true")'; foreach ($sql as $q) { db_e($e = $db->query($q), 'die_freepbx', 4, _("Cannot create xmpp tables")); } $mod_info = module_getinfo('xmpp'); if (!empty($mod_info['xmpp']['dbversion']) && version_compare($mod_info['xmpp']['dbversion'], '2.11.1.3', '<')) { out(_('Migrating Token Users to User Manager')); $sql = "SELECT * FROM xmpp_users"; $users = sql($sql, 'getAll', DB_FETCHMODE_ASSOC); if (!empty($users)) { $usermapping = array(); $userman = FreePBX::create()->Userman; $umusers = array(); $umusersn = array(); foreach ($userman->getAllUsers() as $user) { $umusersn[] = $user['username']; if ($user['default_extension'] == 'none') { continue;
function restapi_tokens_del($id) { global $db; //delete token $sql = 'DELETE FROM restapi_tokens WHERE id = ?'; $ret = $db->query($sql, array($id)); db_e($ret); $sql = 'DELETE FROM restapi_token_details WHERE token_id = ?'; $ret = $db->query($sql, array($id)); db_e($ret); //delete user mapping restapi_user_del_token($id); return ''; }
$sql[] = 'CREATE TABLE IF NOT EXISTS `backup_templates` ( `id` int(11) NOT NULL ' . $autoincrement . ', `name` varchar(50) default NULL, `desc` varchar(255) default NULL, `immortal` varchar(25) default NULL, `data` longtext default NULL, PRIMARY KEY (`id`) )'; $sql[] = 'CREATE TABLE IF NOT EXISTS `backup_template_details` ( `template_id` int(11) NOT NULL, `type` varchar(50) default NULL, `path` text, `exclude` text )'; foreach ($sql as $q) { db_e($db->query($q), 'die_freepbx', 0, _("Can not create backup tables")); } unset($sql); // Default servers $server = array('local' => array('id' => '', 'name' => 'Local Storage', 'desc' => _('Storage location for backups'), 'immortal' => 'true', 'type' => 'local', 'path' => '__ASTSPOOLDIR__/backup'), 'mysql' => array('id' => '', 'name' => 'Config server', 'desc' => _('PBX config server, generally a local database server'), 'immortal' => 'true', 'type' => 'mysql', 'host' => '__AMPDBHOST__', 'port' => 3306, 'user' => '__AMPDBUSER__', 'password' => '__AMPDBPASS__', 'dbname' => '__AMPDBNAME__'), 'cdr' => array('id' => '', 'name' => 'CDR server', 'desc' => _('CDR server, generally a local database server'), 'immortal' => 'true', 'type' => 'mysql', 'host' => '__CDRDBHOST__', 'port' => '__CDRDBPORT__', 'user' => '__CDRDBUSER__', 'password' => '__CDRDBPASS__', 'dbname' => '__CDRDBNAME__')); // Load default servers if needed if ($db->getOne('SELECT COUNT(*) FROM backup_servers') < 1) { $serverids = array(); if (!function_exists("backup_put_server")) { include_once __DIR__ . "/functions.inc/servers.php"; } foreach ($server as $id => $t) { $serverids[$id] = backup_put_server($t); } sql('UPDATE backup_servers SET readonly = "a:1:{i:0;s:1:\\"*\\";}"'); sql('UPDATE backup_servers SET immortal = "true"');
function framework_add_amp_admin($username, $password, $extension_low = '', $extension_high = '', $deptname = '', $sections = array('*')) { global $db; //hash password its less than that 40 chars or has anything besides //a-f and 0-9 (hexadecimal). This isnt foolproof, but its the best we can do $password = preg_match('/^[a-f0-9]{40}$/', $password) ? $password : sha1($password); $sections = is_array($sections) ? implode(";", $sections) : $sections; $values = array($username, $password, $extension_low, $extension_high, $deptname, $sections); $sql = 'REPLACE INTO ampusers ' . '(username, password_sha1, extension_low, extension_high, ' . 'deptname, sections) VALUES (?, ?, ?, ?, ?, ?)'; $res = $db->query($sql, $values); db_e($res); return true; }
`format` varchar(20) NOT NULL, `version` varchar(20) DEFAULT NULL, `installed` varchar(20) DEFAULT NULL, `timestamp` timestamp NOT NULL, PRIMARY KEY (`type`,`module`,`language`,`format`) );'; $sql[] = 'CREATE TABLE IF NOT EXISTS `soundlang_prompts` ( `type` varchar(20) NOT NULL, `module` varchar(80) NOT NULL, `language` varchar(20) NOT NULL, `format` varchar(20) NOT NULL, `filename` varchar(80) DEFAULT NULL );'; if ($first_install) { $language = $db->getOne("SELECT data FROM sipsettings WHERE keyword = 'language' OR keyword = 'sip_language'"); if (db_e($language, '')) { $language = "en"; } $db->query("DELETE FROM sipsettings WHERE keyword = 'language' OR keyword = 'sip_language'"); $db->query("DELETE FROM iaxsettings WHERE keyword = 'language' OR keyword = 'sip_language'"); $sql[] = "INSERT INTO soundlang_settings (keyword, value) VALUES\n\t\t\t('language', '{$language}')\n\t"; } foreach ($sql as $statement) { $check = $db->query($statement); if (DB::IsError($check)) { die_freepbx("Can not execute {$statement} : " . $check->getMessage() . "\n"); } } if ($first_install) { $soundlang = \FreePBX::create()->Soundlang; $vlsd = FreePBX::Config()->get("ASTVARLIBDIR") . "/sounds";
function restapi_logger_clear_history() { global $db; /* 30 days ago */ $oldtime = time() - 2592000; $sql = 'DELETE e, ed FROM restapi_log_events AS e LEFT JOIN restapi_log_event_details AS ed on e.id = ed.e_id WHERE e.time < ?'; $res = $db->query($sql, array($oldtime)); db_e($res); }