function extension_edit_iax2($accountcode, $exten) { global $freeiris_conf; global $dbcon; //------------------------------------------------------编辑extension表 $result = mysql_query("update extension set " . "password='******'password'] . "'," . "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'] . "' where accountcode = '" . $accountcode . "'"); if (!$result) { return rpcreturn(500, mysql_error(), 100, null); } //------------------------------------------------------修改分组 //删除旧分组 $dores = mysql_query("delete from extengroup_assign where accountcode = '" . $accountcode . "'"); if (!$dores) { 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 = '" . $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); //------------------------------------------------------编辑配置数据 $iax2_exten_conf = new asteriskconf(); if ($iax2_exten_conf->parse_in_file($freeiris_conf->get('general', 'asterisketc') . '/iax_exten.conf') == false) { return rpcreturn(500, "can't open " . $freeiris_conf->get('general', 'asterisketc') . '/iax_exten.conf', 100, null); } if (!$iax2_exten_conf->key_list($accountcode)) { return rpcreturn(500, "can't find extension in iax_exten.conf!", 100, null); } //产生编辑数据结构 if (!conftpl_assignedit('/etc/freeiris2/exten.iax2.conf.tpl', $exten, $iax2_exten_conf, $accountcode)) { return rpcreturn(500, "unknow error", 100, null); } //执行 if ($iax2_exten_conf->save_file() && $iax2_exten_conf->last_changed_file == $freeiris_conf->get('general', 'asterisketc') . '/iax_exten.conf') { return rpcreturn(200, null, null, null, true); } else { return rpcreturn(200, null, null, null); } }
<?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();