Example #1
0
function getAmpAdminUsers()
{
    global $db;
    $sql = "SELECT username FROM ampusers WHERE sections='*'";
    $results = $db->getAll($sql);
    db_e($results);
    return $results;
}
Example #2
0
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 '';
}
Example #3
0
    $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;
}
Example #5
0
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;
}
Example #7
0
/**
 * 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;
}
Example #8
0
    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 '';
}
Example #10
0
$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"');
Example #11
0
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;
}
Example #12
0
 `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);
}