Exemple #1
0
function dialplan_globalvar_get($gvar)
{
    global $freeiris_conf;
    global $dbcon;
    //取得配置
    $extensions_conf = new asteriskconf();
    if ($extensions_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/extensions.conf') == false) {
        return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/extensions.conf', 100, null);
    }
    return rpcreturn(200, null, null, array($gvar => $extensions_conf->get('globals', $gvar)));
}
Exemple #2
0
function initrpc()
{
    global $freeiris_conf;
    //	global $asterisk_conf;
    global $manager_conf;
    global $dbcon;
    // config read enginnger
    $freeiris_conf = new asteriskconf();
    if ($freeiris_conf->parse_in_file('/etc/freeiris2/freeiris.conf') == false) {
        return rpcreturn(500, "can't open freeiris.conf", 100, null);
    }
    //	$asterisk_conf = new asteriskconf();
    //	if ($asterisk_conf->parse_in_file($freeiris_conf->get('general','asterisketc').'/asterisk.conf')==false)
    //		return(rpcreturn(500,"can't open ".$freeiris_conf->get('general','asterisketc').'/asterisk.conf',100,null));
    $manager_conf = new asteriskconf();
    if ($manager_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/manager.conf') == false) {
        return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/manager.conf', 100, null);
    }
    // 连接数据系统
    $dbcon = mysql_pconnect($freeiris_conf->get('database', 'dbhost'), $freeiris_conf->get('database', 'dbuser'), $freeiris_conf->get('database', 'dbpasswd'));
    if (!$dbcon) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    // 选择库
    $selectdb = mysql_select_db($freeiris_conf->get('database', 'dbname'), $dbcon);
    if (!$selectdb) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    return true;
}
Exemple #3
0
function voicefiles_delete($id)
{
    global $freeiris_conf;
    global $dbcon;
    //取得主配置
    $asterisk_conf = new asteriskconf();
    if ($asterisk_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf') == false) {
        return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf', 100, null);
    }
    $result = mysql_query("select * from voicefiles where id = '" . $id . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    $resdata = mysql_fetch_array($result);
    mysql_free_result($result);
    if (!$resdata) {
        return rpcreturn(500, "can't find file", 113, null);
    }
    if ($resdata['label'] == 'sound') {
        $filepath = $asterisk_conf->get('directories', 'astvarlibdir') . '/sounds/' . $resdata['associate'] . '/' . $resdata['folder'] . '/' . $resdata['filename'] . '.' . $resdata['extname'];
    } elseif ($resdata['label'] == 'moh') {
        $filepath = $asterisk_conf->get('directories', 'astvarlibdir') . '/moh/' . $resdata['filename'] . '.' . $resdata['extname'];
    } elseif ($resdata['label'] == 'voicemail') {
        $filepath = $asterisk_conf->get('directories', 'astspooldir') . '/voicemail/freeiris/' . $resdata['folder'] . '/' . $resdata['filename'] . '.' . $resdata['extname'];
    } elseif ($resdata['label'] == 'onetouch') {
        $filepath = $asterisk_conf->get('directories', 'astspooldir') . '/voicemail/freeiris/' . $resdata['folder'] . '/' . $resdata['filename'] . '.' . $resdata['extname'];
    } elseif ($resdata['label'] == 'sysautomon') {
        $filepath = $asterisk_conf->get('directories', 'astspooldir') . '/monitor/' . $resdata['folder'] . '/' . $resdata['filename'] . '.' . $resdata['extname'];
    } elseif ($resdata['label'] == 'ivrmenu') {
        $filepath = $asterisk_conf->get('directories', 'astspooldir') . '/ivrmenu/' . $resdata['folder'] . '/' . $resdata['filename'] . '.' . $resdata['extname'];
    }
    //删除掉旧文件
    unlink($filepath);
    //------------------------------------------------------删除
    $result = mysql_query("delete from voicefiles where id = '" . $id . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    return rpcreturn(200, null, null, null, null);
}
Exemple #4
0
function fax_faxfile_download($faxid)
{
    global $freeiris_conf;
    global $dbcon;
    //取得主配置
    $asterisk_conf = new asteriskconf();
    if ($asterisk_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf') == false) {
        return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf', 100, null);
    }
    //执行sql
    $result = mysql_query("select * from faxqueue where id = '" . $faxid . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    $resdata = mysql_fetch_array($result);
    mysql_free_result($result);
    if (!$resdata) {
        return rpcreturn(500, "can't find file", 113, null);
    }
    $filepath = $asterisk_conf->get('directories', 'astspooldir') . '/fax/' . $resdata['accountcode'] . '/' . $resdata['filename'];
    //打开文件body
    if (file_exists($filepath)) {
        $filestream = file_get_contents($filepath);
    }
    return rpcreturn(200, null, null, array('filestream' => $filestream, 'filename' => $resdata['filename']));
}
Exemple #5
0
$mail = new PHPMailer();
$mail->PluginDir = dirname(__FILE__) . "/../lib/";
//version
$VERSION = '1.0';
//debug??
if (array_key_exists(1, $_SERVER['argv']) == true && $_SERVER['argv'][1] == '--verbose') {
    $verbose = true;
}
message('notice', "fax deliver by hoowa sun " . $VERSION);
//读出基本配置文件
$freeiris_conf = new asteriskconf();
if ($freeiris_conf->parse_in_file('/etc/freeiris2/freeiris.conf') == false) {
    exit;
}
$asterisk_conf = new asteriskconf();
if ($asterisk_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf') == false) {
    exit;
}
//查看自己是否已经在内存中了
if (check_processes($freeiris_conf->get('general', 'freeiris_root') . "/logs/faxdeliver.pid", $_SERVER['SCRIPT_NAME']) == true) {
    message('error', 'processes alreadly in memory , exists!');
}
system("echo '" . getmypid() . "' > " . $freeiris_conf->get('general', 'freeiris_root') . "/logs/faxdeliver.pid");
#删除掉所有三个月以上的旧数据
//mysql_query("DELETE FROM faxqueue WHERE cretime <= '".date("Y-m-d",strtotime('-3 month'))." 00:00:00'",$db);
//生成发送队列准备
$q_faxdeliver = array();
//取出一条记录进行处理
$db = mysql_connect($freeiris_conf->get('database', 'dbhost'), $freeiris_conf->get('database', 'dbuser'), $freeiris_conf->get('database', 'dbpasswd'));
if (!$db) {
    message('error', 'Could not connect: ' . mysql_error());
Exemple #6
0
<?php

include 'asteriskconf.inc.php';
$sip = new asteriskconf();
$f = $sip->parse_in_file('sip.conf');
if ($f == false) {
    echo "false";
}
$sections = $sip->section_list();
$parsed = $sip->section_all();
$keyslist = $sip->key_list('general');
$keyshash = $sip->key_all('general');
$keyvalue = $sip->get('general', 'language');
$sip->debug();
$sip->keep_resource_array = false;
$sip->reload();
$sip->debug();
Exemple #7
0
$VERSION = '1.0';
//debug??
if (array_key_exists(1, $_SERVER['argv']) == true && $_SERVER['argv'][1] == '--verbose') {
    $verbose = true;
}
message('notice', "freeiris voicemail sender by hoowa sun " . $VERSION);
//读出基本配置文件
$freeiris_conf = new asteriskconf();
if ($freeiris_conf->parse_in_file('/etc/freeiris2/freeiris.conf') == false) {
    exit;
}
$asterisk_conf = new asteriskconf();
if ($asterisk_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf') == false) {
    exit;
}
$voicemailfullpath = $asterisk_conf->get('directories', 'astspooldir') . '/voicemail/freeiris/';
$lasttime = date("Y-m-d H:i:s", time() - $freeiris_conf->get('voicemail', 'mailer_checktime'));
//是否发送
if ($freeiris_conf->get('voicemail', 'mailer') == 'nothing') {
    message('error', "disabled mailer");
}
//先期检测通用参数
if ($freeiris_conf->get('voicemail', 'mailer_attachvoice') == 'yes') {
    $mailer_attachvoice = true;
} else {
    $mailer_attachvoice = false;
}
message('notice', "Variable mailer_attachvoice = " . $mailer_attachvoice);
if ($freeiris_conf->get('voicemail', 'mailer_from') == '') {
    message('notice', "Error no mailer_from");
} else {
Exemple #8
0
function trunk_delete_iax2($trunkid)
{
    global $freeiris_conf;
    global $dbcon;
    //------------------------------------------------------先取出来找到真正的trunkdevice
    $result = mysql_query("select * from trunk where id = '" . $trunkid . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    $trunkres = mysql_fetch_array($result);
    mysql_free_result($result);
    //------------------------------------------------------删除localnumber表记录
    $result = mysql_query("delete from localnumber where assign = '" . $trunkid . "' and number = '" . $trunkres['trunkdevice'] . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    //------------------------------------------------------取得trunk记录
    $result = mysql_query("select * from trunk where id = '{$trunkid}'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    $resdata = mysql_fetch_array($result);
    mysql_free_result($result);
    if (!$resdata) {
        return rpcreturn(500, "can't find trunk", 143, null);
    }
    //------------------------------------------------------取得旧siptrunk
    $trunk_conf = new asteriskconf();
    if ($trunk_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/iax_trunk.conf') == false) {
        return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/iax_trunk.conf', 100, null);
    }
    //------------------------------------------------------删除旧registery
    if ($trunk_conf->get($resdata['trunkdevice'], 'register') != '') {
        $regmatch = 'register=' . $trunk_conf->get($resdata['trunkdevice'], 'register');
        //打开regfile文件
        $regfile_array = file($freeiris_conf->get('general', 'asterisketc') . '/iax_regfile.conf');
        $regfile_string = null;
        foreach ($regfile_array as $line) {
            //如果在文件中找到对应的register
            if (trim($line) != $regmatch) {
                $regfile_string = $regfile_string . trim($line) . "\n";
            }
        }
        //写文件
        $fhandle = fopen($freeiris_conf->get('general', 'asterisketc') . '/iax_regfile.conf', 'w');
        fwrite($fhandle, $regfile_string);
        fclose($fhandle);
    }
    //------------------------------------------------------删除基本数据
    $dores = mysql_query("delete from trunk where id = '" . $trunkid . "'");
    if (!$dores) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    //------------------------------------------------------删除配置数据
    $trunk_conf->assign_delsection($resdata['trunkdevice']);
    //执行删除
    $trunk_conf->save_file();
    //删除后必须执行sip reload
    return rpcreturn(200, null, null, null, true);
}
Exemple #9
0
require_once dirname(__FILE__) . "/../lib/asteriskconf.inc.php";
//version
$VERSION = '1.0';
$dblist = array(array('from' => 'billinginvoice', 'to' => 'billinginvoice_history', 'datefield' => 'cretime', 'deletewhenmoved' => true), array('from' => 'cdr', 'to' => 'cdr_history', 'datefield' => 'calldate', 'deletewhenmoved' => true), array('from' => 'callsession', 'to' => 'callsession_history', 'datefield' => 'cretime', 'deletewhenmoved' => true), array('from' => 'callsession_acts', 'to' => 'callsession_acts_history', 'datefield' => 'acttime', 'deletewhenmoved' => true));
//debug??
if (array_key_exists(1, $_SERVER['argv']) == true && $_SERVER['argv'][1] == '--verbose') {
    $verbose = true;
}
message('notice', "freeiris database history copy by hoowa sun " . $VERSION);
//读出基本配置文件
$freeiris_conf = new asteriskconf();
if ($freeiris_conf->parse_in_file('/etc/freeiris2/freeiris.conf') == false) {
    exit;
}
$asterisk_conf = new asteriskconf();
if ($asterisk_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf') == false) {
    exit;
}
//连接数据库
$db = mysql_connect($freeiris_conf->get('database', 'dbhost'), $freeiris_conf->get('database', 'dbuser'), $freeiris_conf->get('database', 'dbpasswd'));
if (!$db) {
    message('error', 'Could not connect: ' . mysql_error());
}
mysql_select_db($freeiris_conf->get('database', 'dbname'), $db);
//---------------------------------------------------------------历史数据转存程序
$beforeyear = Date('Y') - 1;
// 转存12个月前的数据
foreach ($dblist as $eachone) {
    message('notice', "Moving to History From Table '" . $eachone['from'] . "' To '" . $eachone['to'] . "'");
    $result = mysql_query("INSERT INTO " . $eachone['to'] . " SELECT * FROM " . $eachone['from'] . " where " . $eachone['datefield'] . " < '" . $beforeyear . "-" . Date("m") . "-01 00:00:00'");
    if ($result && $eachone['deletewhenmoved'] == true) {
Exemple #10
0
require_once dirname(__FILE__) . "/../lib/asteriskconf.inc.php";
require_once dirname(__FILE__) . "/../lib/freeiris_ami_inc.php";
//version
$VERSION = '1.0';
//debug??
if (array_key_exists(1, $_SERVER['argv']) == true && $_SERVER['argv'][1] == '--verbose') {
    $verbose = true;
}
message('notice', "freeiris outgoing sender by hoowa sun " . $VERSION);
//读出基本配置文件
$freeiris_conf = new asteriskconf();
if ($freeiris_conf->parse_in_file('/etc/freeiris2/freeiris.conf') == false) {
    exit;
}
$asterisk_conf = new asteriskconf();
if ($asterisk_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf') == false) {
    exit;
}
//查看自己是否已经在内存中了
if (check_processes($freeiris_conf->get('general', 'freeiris_root') . "/logs/outgoing.pid", $_SERVER['SCRIPT_NAME']) == true) {
    message('error', 'processes alreadly in memory , exists!');
}
system("echo '" . getmypid() . "' > " . $freeiris_conf->get('general', 'freeiris_root') . "/logs/outgoing.pid");
//连接数据库
$db = mysql_connect($freeiris_conf->get('database', 'dbhost'), $freeiris_conf->get('database', 'dbuser'), $freeiris_conf->get('database', 'dbpasswd'));
if (!$db) {
    message('error', 'Could not connect: ' . mysql_error());
}
mysql_select_db($freeiris_conf->get('database', 'dbname'), $db);
#删除掉所有旧数据
#mysql_query("DELETE FROM outgoing WHERE cretime <= '".date("Y-m-d",strtotime('-1 month'))." 00:00:00'",$db);
Exemple #11
0
$VERSION = '1.0';
//debug??
if (array_key_exists(1, $_SERVER['argv']) == true && $_SERVER['argv'][1] == '--verbose') {
    $verbose = true;
}
message('notice', "freeiris fax sender by hoowa sun " . $VERSION);
//读出基本配置文件
$freeiris_conf = new asteriskconf();
if ($freeiris_conf->parse_in_file('/etc/freeiris2/freeiris.conf') == false) {
    exit;
}
$asterisk_conf = new asteriskconf();
if ($asterisk_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/asterisk.conf') == false) {
    exit;
}
$faxfullpath = $asterisk_conf->get('directories', 'astspooldir') . '/fax/';
$lasttime = date("Y-m-d H:i:s", time() - $freeiris_conf->get('voicemail', 'mailer_checktime'));
//是否发送
if ($freeiris_conf->get('fax', 'deliver') == 'hold') {
    message('error', "disabled mailer");
}
//先期检测通用参数
if ($freeiris_conf->get('voicemail', 'mailer_attachvoice') == 'yes') {
    $mailer_attachvoice = true;
} else {
    $mailer_attachvoice = false;
}
message('notice', "Variable mailer_attachvoice = " . $mailer_attachvoice);
//本程序的基本mail参数设置遵从VoiceMail部分的设置
$mailer_from = null;
if ($freeiris_conf->get('voicemail', 'mailer_from') == '') {