assign('pagerows',$args['perPage']); } } //{{{ --- MAIN CODE --- if (!isset($_GET['action'])) { $_GET['action'] = ''; } switch($_GET['action']) { case 'users' : if(isset($ini['Asterisk']['synch_users'])&&$ini['Asterisk']['synch_users']==true) { $export = false; $chkSIP = true; $SIPconf = getSIPConfig($ini); if(!$SIPconf) { $chkSIP = false; } //var_dump($SIPconf); } else { $chkSIP = false; } if($chkSIP) { $tpl->assign('showSIP',true); } $user_query="SELECT * FROM `liveuser_users`,`liveuser_groups`,`liveuser_groupusers`,`liveuser_perm_users` WHERE `liveuser_users`.`authUserId`=`liveuser_perm_users`.`auth_user_id` AND `liveuser_perm_users`.`perm_user_id`=`liveuser_groupusers`.`perm_user_id` AND `liveuser_groupusers`.`group_id`=`liveuser_groups`.`group_id` ORDER BY handle ASC"; $user_res=$db->query($user_query); if (handleError($user_res)) { $users = array(); while ($user_res->fetchInto($user_row)) { if($chkSIP) { //check if the extension is in the sip.conf file if(isset($SIPconf[$user_row['user_phone']])&&!empty($SIPconf[$user_row['user_phone']])) { $user_row['inSIP'] = true; unset($SIPconf[$user_row['user_phone']]); } else { if(isset($_GET['export'])&&!empty($_GET['export'])&&$_GET['export']==$user_row['user_phone']) { $fp = fopen($ini['Asterisk']['conf_path'] . $ini['Asterisk']['conf_filename'], "ab"); if($fp) { $contentStr = "\n[{$user_row['user_phone']}]\ndisallow=all\nallow=g729\nallowguest=yes\ntype=friend ; either \"friend\" (peer+user), \"peer\" or \"user\"\ncallerid={$user_row['user_alias']} <{$user_row['user_phone']}>\n;restrictcid=no\nusername={$user_row['user_phone']}\nhost=dynamic ; we have a static but private IP address\n;nat=yes ; there is not NAT between phone and Asterisk\ncanreinvite=no ; allow RTP voice traffic to bypass Asterisk\nqualify=5000\ndtmfmode=rfc2833 ; either RFC2833 or INFO for the BudgeTone\nmailbox={$user_row['user_phone']}@post-office\n;callgroup=3\n;pickupgroup=3,31\n;outgoinglimit=1\n\n"; fwrite($fp,$contentStr); fclose($fp); $user_row['inSIP'] = true; } else { $user_row['inSIP'] = false; } } else { $user_row['inSIP'] = false; } } } $users[] = $user_row; } } if($chkSIP && !empty($SIPconf)) { $tpl->assign('unimportedUsers',implode(', ', array_keys($SIPconf))); } $tpl->assign('users',$users); $tpl->assign('show_users','true'); break; case 'privileges' : $privileges = array(); $lu_groups = $LUA->perm->getGroups(); //init array index counter $i=0; foreach ($lu_groups as $priv_row) { $lu_gr_query = "SELECT `right_id` FROM `liveuser_grouprights` WHERE `group_id` = '".$priv_row['group_id']."'"; $lu_gr_res = $db->query($lu_gr_query); if(handleError($lu_gr_res)) { while($lu_gr_res->fetchInto($gr_row)) { $privileges[$i][$gr_row['right_id']] = 1; } $privileges[$i]['group_id'] = $priv_row['group_id']; $privileges[$i]['group_define_name'] = $priv_row['group_define_name']; $privileges[$i]['extensions'] = $priv_row['extensions']; } $i++; } $tpl->assign('privileges',$privileges); $tpl->assign('show_privileges','true'); break; case 'globalPhoneBook' : $gpb_query="SELECT * FROM `global_phone_book` WHERE 1 ORDER BY `gpb_number` ASC"; $gpb_res=$db->query($gpb_query); if (handleError($gpb_res)) { $gpb = array(); while ($gpb_res->fetchInto($gpb_row)) { $gpb[] = $gpb_row; } } if(isset($_POST['gpb_csv'])&&!empty($_POST['gpb_csv'])) { header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename=global_phone_book.csv'); //echo column headings echo("\"Number\",\"Name\",\"Type\"\r\n"); foreach($gpb as $row) { echo "\"{$row['gpb_number']}\",\"{$row['gpb_name']}\",\"{$row['gpb_type']}\"\r\n"; } die(); } //{{{ setup quickform for sortable tables row number modification $form= new HTML_QuickForm('PageForm','POST','admin.php?action=globalPhoneBook'); $form->addElement('text','perPage','Entries per Page: '); $form->addRule('perPage','Please enter a number', 'numeric'); $form->addElement('submit','btnSubmit',"Submit Change"); $tpl->assign('pagerows',$ini['System']['per_page']); if($form->validate()) { $form->process('change_rows',false); } //}}} $tpl->assign('gpb',$gpb); $tpl->assign('show_gpb','true'); break; default : $tpl->assign('show_main','true'); if(isset($ini['Asterisk']['synch_users'])&&$ini['Asterisk']['synch_users']) { $tpl->assign('showSIP','true'); } }//end of switch $tpl->setTPL('admin.tpl.html'); //$tpl->setTPL('helloworld.tpl'); if(isset($form)) { $tpl->display($form); } else { $tpl->display(); } //}}} ?>