Ejemplo n.º 1
0
function extension_add_fxs($exten)
{
    global $freeiris_conf;
    global $dbcon;
    //------------------------------------------------------创建localnumber表记录
    $result = mysql_query("insert into localnumber set number = '" . $exten['devicenumber'] . "',typeof = 'extension',assign = '" . $exten['accountcode'] . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    //------------------------------------------------------创建extension表记录
    $result = mysql_query("insert into extension set accountcode = '" . $exten['accountcode'] . "',cretime=now()," . "password='******'password'] . "'," . "deviceproto='fxs'," . "devicenumber='" . $exten['devicenumber'] . "'," . "devicestring='" . $exten['devicestring'] . "'," . "fristchecked=0," . "transfernumber='" . $exten['transfernumber'] . "'," . "diallocal_failed='" . $exten['diallocal_failed'] . "'," . "info_name='" . $exten['info_name'] . "'," . "info_email='" . $exten['info_email'] . "'," . "info_detail='" . $exten['info_detail'] . "'," . "info_remark='" . $exten['info_remark'] . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    //------------------------------------------------------生成分组数据
    foreach (split('[\\,|\\s|\\ ]', $exten['extengroup']) as $value) {
        $groupnames = $groupnames . " groupname = '{$value}' OR ";
    }
    $groupnames = rtrim($groupnames, 'OR ');
    $exten['callgroup'] = null;
    $exten['pickupgroup'] = null;
    $result = mysql_query("select * from extengroup where {$groupnames}");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    while ($each = mysql_fetch_array($result)) {
        //创建分组
        $dores = mysql_query("insert into extengroup_assign set groupid = '" . $each['groupid'] . "' , accountcode = '" . $exten['accountcode'] . "'");
        if (!$dores) {
            return rpcreturn(500, mysql_error(), 100, null);
        }
        //补充sip template所需数据
        $exten['callgroup'] = $exten['callgroup'] . $each['groupid'] . ',';
        $exten['pickupgroup'] = $exten['pickupgroup'] . $each['groupid'] . ',';
    }
    mysql_free_result($result);
    //------------------------------------------------------hints的数据处理
    extension_hints_add($exten['devicenumber'], 'DAHDI', $exten['devicestring']);
    //------------------------------------------------------生成template数据格式
    $tplcontents = conftpl_replace('/etc/freeiris2/chan_dahdi_fxs.conf.tpl', $exten);
    //存储到配置文件中
    $fxs_conf = new asteriskconf();
    if ($fxs_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/chan_dahdi_fxs.conf') == false) {
        return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/chan_dahdi_fxs.conf', 100, null);
    }
    $fxs_conf->assign_append('foot', null, $tplcontents, null);
    $fxs_conf->save_file();
    return rpcreturn(200, null, null, null, true);
}
Ejemplo n.º 2
0
function queue_edit($queuenumber, $queuedata)
{
    global $freeiris_conf;
    global $dbcon;
    //------------------------------------------------------刷新member数据
    foreach ($queuedata['members'] as $value) {
        $indbmembers = $indbmembers . "&" . $value;
        $tplmembers = $tplmembers . "member=LOCAL/" . $value . "@sub-queuefindnumber/n,0," . $value . "\n";
    }
    //------------------------------------------------------创建extension表记录
    $result = mysql_query("update queue set " . "queuename='" . $queuedata['queuename'] . "'," . "announce='" . $queuedata['announce'] . "'," . "playring='" . $queuedata['playring'] . "'," . "saymember='" . $queuedata['saymember'] . "'," . "queuetimeout='" . $queuedata['queuetimeout'] . "'," . "failedon='" . $queuedata['failedon'] . "'," . "members='" . $indbmembers . "' " . "where queuenumber='" . $queuenumber . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    //------------------------------------------------------生成template数据格式
    $tpldata = array();
    $tpldata['queuenumber'] = $queuenumber;
    $tpldata['strategy'] = $queuedata['strategy'];
    $tpldata['timeout'] = $queuedata['timeout'];
    $tpldata['periodic-announce-frequency'] = $queuedata['periodic-announce-frequency'];
    $tpldata['members'] = $tplmembers;
    $tplcontents = conftpl_replace('/etc/freeiris2/queues.conf.tpl', $tpldata);
    //存储到配置文件中
    $queues_list_conf = new asteriskconf();
    if ($queues_list_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/queues_list.conf') == false) {
        return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/queues_list.conf', 100, null);
    }
    $queues_list_conf->assign_delsection($queuenumber);
    $queues_list_conf->assign_append('foot', null, $tplcontents, null);
    //如果执行成功
    if ($queues_list_conf->save_file() && $queues_list_conf->last_changed_file == $freeiris_conf->get('general', 'asterisketc') . '/queues_list.conf') {
        return rpcreturn(200, null, null, null, true);
    } else {
        return rpcreturn(200, null, null, null);
    }
}
Ejemplo n.º 3
0
function trunk_add_fxo($devdata)
{
    global $freeiris_conf;
    global $dbcon;
    //------------------------------------------------------创建trunk记录
    $result = mysql_query("insert into trunk set trunkname = '" . $devdata['trunkname'] . "',cretime=now()," . "trunkproto='" . $devdata['trunkproto'] . "'," . "trunkprototype='" . $devdata['trunkprototype'] . "'," . "trunkdevice='" . $devdata['trunkdevice'] . "'," . "trunkremark='" . $devdata['trunkremark'] . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    //------------------------------------------------------创建trunk记录的id
    $result = mysql_query("select last_insert_id()");
    $lastid = mysql_fetch_array($result);
    mysql_free_result($result);
    $lastid = $lastid[0];
    //------------------------------------------------------创建localnumber表记录
    $result = mysql_query("insert into localnumber set number = '" . $devdata['trunkdevice'] . "',typeof = 'trunk',assign = '" . $lastid . "'");
    if (!$result) {
        return rpcreturn(500, mysql_error(), 100, null);
    }
    //------------------------------------------------------生成template数据格式
    $devdata['channel'] = chanpacker($devdata['channel_array']);
    $tplcontents = conftpl_replace('/etc/freeiris2/chan_dahdi_fxo.conf.tpl', $devdata);
    //存储到配置文件中
    $fxo_conf = new asteriskconf();
    if ($fxo_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/chan_dahdi_fxo.conf') == false) {
        return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/chan_dahdi_fxo.conf', 100, null);
    }
    $fxo_conf->assign_append('foot', null, $tplcontents, null);
    $fxo_conf->save_file();
    return rpcreturn(200, null, null, null, true);
}