Esempio n. 1
0
 public function doConfigPageInit()
 {
     $request = array('action', 'id', 'goto0', 'name', 'text', 'engine');
     $vars = array();
     $goto = null;
     foreach ($request as $key) {
         $vars[$key] = isset($_REQUEST[$key]) ? $_REQUEST[$key] : null;
     }
     if (isset($vars['goto0']) && isset($_REQUEST[$vars['goto0'] . "0"])) {
         $goto = $_REQUEST[$vars['goto0'] . "0"];
     }
     switch ($vars['action']) {
         case "add":
             $_REQUEST['id'] = \tts_add($vars['name'], $vars['text'], $goto, $vars['engine']);
             \needreload();
             break;
         case "delete":
             \tts_del($vars['id']);
             $_REQUEST['id'] = null;
             \needreload();
             break;
         case "edit":
             \tts_update($vars['id'], $vars['name'], $vars['text'], $goto, $_REQUEST['engine']);
             \needreload();
             break;
     }
 }
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     $action = isset($request['action']) ? $request['action'] : '';
     $password = isset($request['password']) ? $request['password'] : '';
     $fc_description = isset($request['fc_description']) ? $request['fc_description'] : '';
     $day_recording_id = isset($request['day_recording_id']) ? $request['day_recording_id'] : '';
     $night_recording_id = isset($request['night_recording_id']) ? $request['night_recording_id'] : '';
     isset($request['itemid']) ? $itemid = $request['itemid'] : ($itemid = '');
     $extdisplay = isset($request['extdisplay']) ? $request['extdisplay'] : '';
     switch ($action) {
         case "add":
         case "edit":
         case "edited":
             \daynight_edit($request, $itemid);
             \needreload();
             $_REQUEST['view'] = null;
             break;
         case "delete":
             \daynight_del($itemid);
             \needreload();
             $_REQUEST['view'] = null;
             break;
     }
 }
Esempio n. 3
0
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     isset($request['action']) ? $action = $request['action'] : ($action = '');
     isset($request['view']) ? $view = $request['view'] : ($view = '');
     isset($request['itemid']) ? $itemid = $request['itemid'] : ($itemid = '');
     if (isset($request['action'])) {
         switch ($action) {
             case "add":
                 pinsets_add($request);
                 needreload();
                 redirect_standard();
                 break;
             case "delete":
                 pinsets_del($itemid);
                 needreload();
                 redirect_standard();
                 break;
             case "edit":
                 pinsets_edit($itemid, $request);
                 needreload();
                 redirect_standard('itemid', 'view');
                 break;
         }
     }
 }
 public function doConfigPageInit($page)
 {
     if (!empty($_POST)) {
         $readonly = $_POST['readonly'] == 'yes' ? 1 : 0;
         if (empty($_POST['id'])) {
             $id = $this->addUser($_POST['name'], $_POST['password'], $_POST['password_type'], $readonly);
             $_REQUEST['user'] = $id ? $id : '';
         } else {
             if ($_POST['password'] == '******') {
                 $this->editUser($_POST['id'], $_POST['name'], $readonly);
             } else {
                 $this->editUser($_POST['id'], $_POST['name'], $readonly, $_POST['password'], $_POST['password_type']);
             }
             $_REQUEST['user'] = $_POST['id'];
             $_REQUEST['view'] = 'form';
         }
         needreload();
     } elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete') {
         if (!empty($_REQUEST['user'])) {
             $this->deleteUser($_REQUEST['user']);
             needreload();
             unset($_REQUEST['user']);
             if (isset($_REQUEST['view'])) {
                 unset($_REQUEST['view']);
             }
         }
     }
 }
 public function doConfigPageInit($page)
 {
     $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
     if (isset($_REQUEST['delete'])) {
         $action = 'delete';
     }
     $queueprio_id = isset($_REQUEST['queueprio_id']) ? $_REQUEST['queueprio_id'] : false;
     $description = isset($_REQUEST['description']) ? $_REQUEST['description'] : '';
     $queue_priority = isset($_REQUEST['queue_priority']) ? $_REQUEST['queue_priority'] : '';
     $dest = isset($_REQUEST['dest']) ? $_REQUEST['dest'] : '';
     if (isset($_REQUEST['goto0']) && $_REQUEST['goto0']) {
         $dest = $_REQUEST[$_REQUEST['goto0'] . '0'];
     }
     switch ($action) {
         case 'add':
             $_REQUEST['extdisplay'] = queueprio_add($description, $queue_priority, $dest);
             needreload();
             break;
         case 'edit':
             queueprio_edit($queueprio_id, $description, $queue_priority, $dest);
             $_REQUEST['extdisplay'] = $queueprio_id;
             needreload();
             break;
         case 'delete':
             queueprio_delete($queueprio_id);
             needreload();
             break;
     }
 }
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     isset($request['extdisplay']) ? $extdisplay = $request['extdisplay'] : ($extdisplay = '');
     isset($request['description']) ? $description = $request['description'] : ($description = '');
     isset($request['destdial']) ? $destdial = $request['destdial'] : ($destdial = '');
     isset($request['view']) ? $view = $request['view'] : ($view = '');
     isset($request['action']) ? $action = $request['action'] : ($action = '');
     switch ($action) {
         case "add":
             $extdisplay = $this->add($request['description'], $request['destdial']);
             needreload();
             redirect_standard();
             break;
         case "delete":
             $this->del($request['extdisplay']);
             needreload();
             redirect_standard();
             break;
         case "edit":
             $this->update($request['extdisplay'], $request['description'], $request['destdial']);
             needreload();
             redirect_standard('extdisplay', 'view');
             break;
     }
 }
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     $type = isset($request['type']) ? $request['type'] : 'setup';
     $action = isset($request['action']) ? $request['action'] : '';
     if (isset($request['delete'])) {
         $action = 'delete';
     }
     $language_id = isset($request['language_id']) ? $request['language_id'] : false;
     $description = isset($request['description']) ? $request['description'] : '';
     $lang_code = isset($request['lang_code']) ? $request['lang_code'] : '';
     $dest = isset($request['dest']) ? $request['dest'] : '';
     $view = isset($request['view']) ? $request['view'] : '';
     if (isset($request['goto0']) && $request['goto0']) {
         $dest = $request[$request['goto0'] . '0'];
     }
     switch ($action) {
         case 'add':
             $request['extdisplay'] = languages_add($description, $lang_code, $dest);
             needreload();
             break;
         case 'edit':
             languages_edit($language_id, $description, $lang_code, $dest);
             needreload();
             break;
         case 'delete':
             languages_delete($language_id);
             needreload();
             break;
     }
 }
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     $error_displays = array();
     $action = isset($request['action']) ? $request['action'] : '';
     $post_codec = isset($request['codec']) ? $request['codec'] : array();
     $post_vcodec = isset($request['vcodec']) ? $request['vcodec'] : array();
     $iax_settings['codecpriority'] = isset($request['codecpriority']) ? $request['codecpriority'] : 'host';
     $iax_settings['bandwidth'] = isset($request['bandwidth']) ? $request['bandwidth'] : 'unset';
     $iax_settings['videosupport'] = isset($request['videosupport']) ? $request['videosupport'] : 'no';
     $iax_settings['maxregexpire'] = isset($request['maxregexpire']) ? htmlspecialchars($request['maxregexpire']) : '3600';
     $iax_settings['minregexpire'] = isset($request['minregexpire']) ? htmlspecialchars($request['minregexpire']) : '60';
     $iax_settings['jitterbuffer'] = isset($request['jitterbuffer']) ? $request['jitterbuffer'] : 'no';
     $iax_settings['forcejitterbuffer'] = isset($request['forcejitterbuffer']) ? $request['forcejitterbuffer'] : 'no';
     $iax_settings['maxjitterbuffer'] = isset($request['maxjitterbuffer']) ? htmlspecialchars($request['maxjitterbuffer']) : '200';
     $iax_settings['resyncthreshold'] = isset($request['resyncthreshold']) ? htmlspecialchars($request['resyncthreshold']) : '1000';
     $iax_settings['maxjitterinterps'] = isset($request['maxjitterinterps']) ? htmlspecialchars($request['maxjitterinterps']) : '10';
     $iax_settings['bindaddr'] = isset($request['bindaddr']) ? htmlspecialchars($request['bindaddr']) : '';
     $iax_settings['bindport'] = isset($request['bindport']) ? htmlspecialchars($request['bindport']) : '';
     $iax_settings['delayreject'] = isset($request['delayreject']) ? htmlspecialchars($request['delayreject']) : 'yes';
     $codecs = array('ulaw' => '', 'alaw' => '', 'slin' => '', 'g726' => '', 'gsm' => '', 'g729' => '', 'ilbc' => '', 'g723' => '', 'g726aal2' => '', 'adpcm' => '', 'lpc10' => '', 'speex' => '', 'g722' => '', 'siren7' => '', 'siren14' => '');
     // With the new sorting, the vars should come to us in the sorted order so just use that
     //
     $pri = 1;
     foreach (array_keys($post_codec) as $codec) {
         $codecs[$codec] = $pri++;
     }
     $iax_settings['codecs'] = $codecs;
     $video_codecs = array('h261' => '', 'h263' => '', 'h263p' => '', 'h264' => '');
     $pri = 1;
     foreach (array_keys($post_vcodec) as $vcodec) {
         $video_codecs[$vcodec] = $pri++;
     }
     $iax_settings['video_codecs'] = $video_codecs;
     $p_idx = $n_idx = 0;
     while (isset($request["iax_custom_key_{$p_idx}"])) {
         if ($request["iax_custom_key_{$p_idx}"] != '') {
             $iax_settings["iax_custom_key_{$n_idx}"] = htmlspecialchars($request["iax_custom_key_{$p_idx}"]);
             $iax_settings["iax_custom_val_{$n_idx}"] = htmlspecialchars($request["iax_custom_val_{$p_idx}"]);
             $n_idx++;
         }
         $p_idx++;
     }
     switch ($action) {
         case "edit":
             //just delete and re-add
             if (($errors = iaxsettings_edit($iax_settings)) !== true) {
                 $error_displays = process_errors($errors);
             } else {
                 needreload();
                 //redirect_standard();
             }
             break;
         default:
             /* only get them if first time load, if they pressed submit, use values from POST */
             $iax_settings = iaxsettings_get();
     }
     $error_displays = array_merge($error_displays, iaxsettings_check_custom_files());
 }
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     isset($request['action']) ? $action = $request['action'] : ($action = '');
     isset($request['view']) ? $view = $request['view'] : ($view = 'form');
     //the extension we are currently displaying
     $account = isset($request['account']) ? $request['account'] : '';
     $extdisplay = isset($request['extdisplay']) && $request['extdisplay'] != '' ? $request['extdisplay'] : $account;
     $orig_account = isset($request['orig_account']) ? $request['orig_account'] : '';
     $music = isset($request['music']) ? $request['music'] : '';
     $users = isset($request['users']) ? $request['users'] : '0';
     //check if the extension is within range for this user
     if ($account != "" && !checkRange($account)) {
         echo "<script>javascript:alert('" . _("Warning! Extension") . " {$account} " . _("is not allowed for your account.") . "');</script>";
     } else {
         //if submitting form, update database
         switch ($action) {
             case "add":
                 $conflict_url = array();
                 $usage_arr = framework_check_extension_usage($account);
                 if (!empty($usage_arr)) {
                     $conflict_url = framework_display_extension_usage_alert($usage_arr);
                 } elseif ($this->addConference($account, $request['name'], $request['userpin'], $request['adminpin'], $request['options'], $request['joinmsg_id'], $music, $users, $request['adminpin']) !== false) {
                     needreload();
                 }
                 break;
             case "delete":
                 $this->deleteConference($extdisplay);
                 needreload();
                 break;
             case "edit":
                 //just delete and re-add
                 //check to see if the room number has changed
                 if ($orig_account != '' && $orig_account != $account) {
                     $conflict_url = array();
                     $usage_arr = framework_check_extension_usage($account);
                     if (!empty($usage_arr)) {
                         $conflict_url = framework_display_extension_usage_alert($usage_arr);
                         break;
                     } else {
                         $this->deleteConference($orig_account);
                         $request['extdisplay'] = $account;
                         //redirect to the new ext
                         $old = conferences_getdest($orig_account);
                         $new = conferences_getdest($account);
                         framework_change_destination($old[0], $new[0]);
                     }
                 } else {
                     $this->deleteConference($account);
                 }
                 $this->addConference($account, $request['name'], $request['userpin'], $request['adminpin'], $request['options'], $request['joinmsg_id'], $music, $users, $request['language']);
                 needreload();
                 break;
         }
     }
 }
Esempio n. 10
0
function itslenny_edit($id, $post)
{
    global $db;
    $var1 = $db->escapeSimple($post['enable']);
    $var2 = $db->escapeSimple($post['record']);
    $var3 = $db->escapeSimple($post['destination']);
    $var4 = $db->escapeSimple($post['silence']);
    $var5 = $db->escapeSimple($post['itterations']);
    $results = sql("\n\t\tUPDATE itslenny \n\t\tSET \n\t\t\tenable = '{$var1}', \n\t\t\trecord = '{$var2}', \n\t\t\tdestination = '{$var3}',\n\t\t\tsilence = '{$var4}',\n\t\t\titterations = '{$var5}'\n\t\tWHERE id = '{$id}'");
    needreload();
}
Esempio n. 11
0
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     if ($page == "callrecording") {
         $type = isset($request['type']) ? $request['type'] : 'setup';
         $view = isset($request['view']) ? $request['view'] : 'form';
         $action = isset($request['action']) ? $request['action'] : '';
         if (isset($request['delete'])) {
             $action = 'delete';
         }
         $callrecording_id = isset($request['callrecording_id']) ? $request['callrecording_id'] : false;
         $description = isset($request['description']) ? $request['description'] : '';
         $callrecording_mode = isset($request['callrecording_mode']) ? $request['callrecording_mode'] : '';
         $dest = isset($request['dest']) ? $request['dest'] : '';
         if (isset($request['goto0']) && $request['goto0']) {
             $dest = $request[$request['goto0'] . '0'];
         }
         switch ($action) {
             case 'add':
                 $request['extdisplay'] = callrecording_add($description, $callrecording_mode, $dest);
                 needreload();
                 //redirect_standard('extdisplay', 'view');
                 break;
             case 'edit':
                 callrecording_edit($callrecording_id, $description, $callrecording_mode, $dest);
                 needreload();
                 //redirect_standard('extdisplay', 'view');
                 break;
             case 'delete':
                 callrecording_delete($callrecording_id);
                 needreload();
                 //redirect_standard();
                 break;
         }
     }
     if ($page == "routing") {
         $viewing_itemid = isset($request['id']) ? $request['id'] : '';
         $action = isset($request['action']) ? $request['action'] : null;
         $route_id = $viewing_itemid;
         //dbug("got request for callrecording process for route: $route_id action: $action");
         if (isset($request['Submit'])) {
             $action = isset($action) ? $action : 'editroute';
         }
         // $action won't be set on the redirect but callrecordingAddRoute will be in the session
         //
         if (!$action && !empty($_SESSION['callrecordingAddRoute'])) {
             callrecording_adjustroute($route_id, 'delayed_insert_route', $_SESSION['callrecordingAddRoute']);
             unset($_SESSION['callrecordingAddRoute']);
         } elseif ($action) {
             callrecording_adjustroute($route_id, $action, $request['callrecording']);
         }
     }
 }
Esempio n. 12
0
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     $dispnum = 'vmblast';
     //used for switch on config.php
     $action = isset($request['action']) ? $request['action'] : '';
     //the extension we are currently displaying
     $account = isset($request['account']) ? $request['account'] : '';
     $extdisplay = isset($request['extdisplay']) ? ltrim($request['extdisplay'], 'GRP-') : ($account != '' ? $account : '');
     $description = isset($request['description']) ? $request['description'] : '';
     $audio_label = isset($request['audio_label']) ? $request['audio_label'] : -1;
     $password = isset($request['password']) ? $request['password'] : '';
     $default_group = isset($request['default_group']) ? $request['default_group'] : '0';
     $vmblast_list = isset($request['vmblast_list']) ? $request['vmblast_list'] : '';
     $view = isset($request['view']) ? $request['view'] : 'form';
     // do if we are submitting a form
     if (isset($request['action'])) {
         //check if the extension is within range for this user
         if (isset($account) && !checkRange($account)) {
             echo "<script>javascript:alert('" . _("Warning! Extension") . " " . $account . " " . _("is not allowed for your account") . ".');</script>";
         } else {
             //add group
             if ($action == 'addGRP') {
                 $conflict_url = array();
                 $usage_arr = framework_check_extension_usage($account);
                 if (!empty($usage_arr)) {
                     $conflict_url = framework_display_extension_usage_alert($usage_arr);
                 } else {
                     if (vmblast_add($account, $vmblast_list, $description, $audio_label, $password, $default_group)) {
                         //$request['action'] = 'delGRP';
                         $_REQUEST['view'] = 'form';
                         $_REQUEST['extdisplay'] = $account;
                         needreload();
                         //redirect_standard('extdisplay', 'view');
                     }
                 }
             }
             //del group
             if ($action == 'delGRP') {
                 vmblast_del($account);
                 needreload();
             }
             //edit group - just delete and then re-add the extension
             if ($action == 'editGRP') {
                 vmblast_del($account);
                 vmblast_add($account, $vmblast_list, $description, $audio_label, $password, $default_group);
                 needreload();
             }
         }
     }
 }
Esempio n. 13
0
 public function doConfigPageInit($page)
 {
     isset($_REQUEST['action']) ? $action = $_REQUEST['action'] : ($action = '');
     isset($_REQUEST['itemid']) ? $itemid = $_REQUEST['itemid'] : ($itemid = '');
     switch ($action) {
         case "add":
             $_REQUEST['itemid'] = callback_add($_POST);
             needreload();
             break;
         case "delete":
             callback_del($itemid);
             needreload();
             break;
         case "edit":
             callback_edit($itemid, $_POST);
             needreload();
             break;
     }
 }
Esempio n. 14
0
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     isset($request['action']) ? $action = $request['action'] : ($action = '');
     isset($request['view']) ? $view = $request['view'] : ($view = 'form');
     isset($request['itemid']) ? $itemid = $request['itemid'] : ($itemid = '');
     if (isset($request['action'])) {
         switch ($action) {
             case "add":
                 cidlookup_add($request);
                 needreload();
                 redirect_standard();
                 break;
             case "delete":
                 cidlookup_del($itemid);
                 needreload();
                 redirect_standard();
                 break;
             case "edit":
                 cidlookup_edit($itemid, $request);
                 needreload();
                 redirect_standard('itemid');
                 break;
             case "getJSON":
                 switch ($request['jdata']) {
                     case "cid_modules":
                         header('Content-Type: application/json');
                         echo json_encode($this->cid_modules);
                         exit;
                         break;
                     default:
                         header('Content-Type: application/json');
                         echo json_encode(array('status' => 'ERROR', 'message' => 'Invalid Request'));
                         exit;
                         break;
                 }
                 break;
         }
     }
 }
Esempio n. 15
0
function featurecodeadmin_update($req)
{
    foreach ($req as $key => $item) {
        // Split up...
        // 0 - action
        // 1 - modulename
        // 2 - featurename
        $arr = explode("#", $key);
        if (count($arr) == 3) {
            $action = $arr[0];
            $modulename = $arr[1];
            $featurename = $arr[2];
            $fieldvalue = $item;
            // Is there a more efficient way of doing this?
            switch ($action) {
                case "ena":
                    $fcc = new featurecode($modulename, $featurename);
                    if ($fieldvalue == 1) {
                        $fcc->setEnabled(true);
                    } else {
                        $fcc->setEnabled(false);
                    }
                    $fcc->update();
                    break;
                case "custom":
                    $fcc = new featurecode($modulename, $featurename);
                    if ($fieldvalue == $fcc->getDefault()) {
                        $fcc->setCode('');
                        // using default
                    } else {
                        $fcc->setCode($fieldvalue);
                    }
                    $fcc->update();
                    break;
            }
        }
    }
    needreload();
}
 public function update($codes = array())
 {
     if (!empty($codes)) {
         foreach ($codes as $module => $features) {
             foreach ($features as $name => $data) {
                 $fcc = new \featurecode($module, $name);
                 if (!empty($data['enable'])) {
                     $fcc->setEnabled(true);
                 } else {
                     $fcc->setEnabled(false);
                 }
                 if (empty($data['customize']) || $data['code'] == $fcc->getDefault()) {
                     $fcc->setCode('');
                 } else {
                     $fcc->setCode($data['code']);
                 }
                 $fcc->update();
             }
         }
         needreload();
     }
 }
Esempio n. 17
0
 public function doConfigPageInit($page)
 {
     $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
     $itemid = isset($_REQUEST['itemid']) ? $_REQUEST['itemid'] : '';
     switch ($action) {
         case "add":
             $_REQUEST['itemid'] = disa_add($_POST);
             needreload();
             break;
         case "delete":
             $oldItem = disa_get($itemid);
             disa_del($itemid);
             needreload();
             break;
         case "edit":
             //just delete and re-add
             disa_edit($itemid, $_POST);
             $_REQUEST['itemid'] = $itemid;
             needreload();
             break;
     }
 }
Esempio n. 18
0
     break;
 case "edittrunk":
     if ($tech == 'pjsip') {
         $channelid = !empty($_REQUEST['trunk_name']) ? $_REQUEST['trunk_name'] : '';
     }
     core_trunks_edit($trunknum, $channelid, $dialoutprefix, $maxchans, $outcid, $peerdetails, $usercontext, $userconfig, $register, $keepcid, trim($failtrunk), $disabletrunk, $trunk_name, $provider, $continue, $dialopts);
     // this can rewrite too, so edit is the same
     core_trunks_update_dialrules($trunknum, $dialpattern_insert, true);
     needreload();
     redirect_standard('extdisplay');
     break;
 case "deltrunk":
     core_trunks_del($trunknum);
     core_trunks_delete_dialrules($trunknum);
     core_routing_trunk_delbyid($trunknum);
     needreload();
     redirect_standard();
     break;
 case "populatenpanxx7":
 case "populatenpanxx10":
     $dialpattern_array = $dialpattern_insert;
     if (preg_match("/^([2-9]\\d\\d)-?([2-9]\\d\\d)\$/", $_REQUEST["npanxx"], $matches)) {
         // first thing we do is grab the exch:
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($ch, CURLOPT_URL, "http://www.localcallingguide.com/xmllocalprefix.php?npa=" . $matches[1] . "&nxx=" . $matches[2]);
         curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; FreePBX Local Trunks Configuration)");
         $str = curl_exec($ch);
         curl_close($ch);
         // quick 'n dirty - nabbed from PEAR
         require_once $amp_conf['AMPWEBROOT'] . '/admin/modules/core/XML_Parser.php';
Esempio n. 19
0
 /**
  * Uninstall a module, but files remain
  * @param string   The name of the module to install
  * @param bool     If true, skips status and dependency checks
  * @return mixed   True if succesful, array of error messages if not succesful
  */
 function uninstall($modulename, $force = false)
 {
     global $db;
     global $amp_conf;
     $modules = $this->getinfo($modulename);
     if (!isset($modules[$modulename])) {
         return array(_("Specified module not found"));
     }
     if (!$force) {
         if ($modules[$modulename]['status'] == MODULE_STATUS_NOTINSTALLED) {
             return array(_("Module not installed: cannot uninstall"));
         }
         if (($depmods = $this->reversedepends($modulename)) !== false) {
             return array(_("Cannot disable: The following modules depend on this one: ") . implode(',', $depmods));
         }
     }
     // Check if another module wants this uninstall to be rejected
     // The module must have a callback: [modulename]_module_uninstall_check_callbak() that takes
     // a single modules array from module_getinfo() about the module to be uninstalled
     // and it must pass back boolean true if the uninstall can proceed, or a message
     // indicating why the uninstall must fail
     //
     $rejects = array();
     foreach (mod_func_iterator('module_uninstall_check_callback', $modules) as $mod => $res) {
         if ($res !== true) {
             $rejects[] = $res;
         }
     }
     if (!empty($rejects)) {
         return $rejects;
     }
     $sql = "DELETE FROM modules WHERE modulename = '" . $db->escapeSimple($modulename) . "'";
     $results = $db->query($sql);
     if (DB::IsError($results)) {
         return array(_("Error updating database: ") . $results->getMessage());
     }
     if (!$this->_runscripts($modulename, 'uninstall', $modules)) {
         return array(_("Failed to run un-installation scripts"));
     }
     // Now make sure all feature codes are uninstalled in case the module has not already done it
     //
     require_once dirname(__FILE__) . '/featurecodes.class.php';
     //TODO: do we need this, now that we have bootstrap? -MB
     featurecodes_delModuleFeatures($modulename);
     $freepbx_conf =& freepbx_conf::create();
     $freepbx_conf->remove_module_settings($modulename);
     $mod_asset_dir = $amp_conf['AMPWEBROOT'] . "/admin/assets/" . $modulename;
     if (is_link($mod_asset_dir)) {
         @unlink($mod_asset_dir);
     }
     needreload();
     //invalidate the modulelist class since it is now stale
     modulelist::create($db)->invalidate();
     try {
         $sth = FreePBX::Database()->prepare("DELETE FROM `kvstore` WHERE `module` = :mod");
         $sth->execute(array(":mod" => $modulename));
     } catch (\Exception $e) {
     }
     return true;
 }
 /**
  * Update the TLS Port if requested
  *
  * This is called when 'tlsportowner' is submitted as part of the POST.
  * It checks to see if the requested channel driver does own the TLS port,
  * and if it doesn't, it assigns it.
  *
  * If the other driver is assigned to that port, it moves it to 5161.
  */
 public function updateTlsOwner($driver = false)
 {
     // Who owns it at the moment?
     $owner = $this->getTlsPortOwner();
     if ($owner == $driver) {
         // Nothing to do, we're already correct
         return true;
     }
     // Does chan_sip want to own the TLS port?
     if ($driver == "sip") {
         // We're moving chansip to 5061
         $this->updateChanSipSettings("tlsbindport", 5061);
         needreload();
         // If pjsip is listening on 5061, move it to 5161
         $pjsipbinds = $this->getConfig("binds");
         $pjsipbinds = is_array($pjsipbinds) ? $pjsipbinds : array();
         foreach ($pjsipbinds as $pjproto => $binds) {
             // Skip if not tls
             if ($pjproto !== "tls") {
                 continue;
             }
             // Get all the listening TLS interfaces and if they're
             // set to 5061, set them to 5161
             foreach ($binds as $ip => $state) {
                 $p = $this->getConfig($pjproto . "port-" . $ip);
                 if ($p == 5061) {
                     // It's a conflict. move to 5161
                     $this->setConfig($pjproto . "port-" . $ip, 5161);
                 }
             }
         }
     } elseif ($driver = "pjsip") {
         // We're setting pjsip to own 5061. Does chansip think it
         // owns it?
         $chansip = $this->getChanSipSettings();
         if (!isset($chansip['tlsbindport']) || !$chansip['tlsbindport'] || $chansip['tlsbindport'] == 5061) {
             // Yes it does. Move to 5161.
             $this->updateChanSipSettings("tlsbindport", 5161);
             needreload();
         }
         // Update all tls listeners for pjsip to listen on 5061
         $pjsipbinds = $this->getConfig("binds");
         $pjsipbinds = is_array($pjsipbinds) ? $pjsipbinds : array();
         foreach ($pjsipbinds as $pjproto => $binds) {
             // Skip if not tls
             if ($pjproto !== "tls") {
                 continue;
             }
             // Get all the listening TLS interfaces and if they're
             // set to 5061, set them to 5161
             foreach ($binds as $ip => $state) {
                 $p = $this->getConfig($pjproto . "port-" . $ip);
                 if ($p != 5061) {
                     // It's a conflict. move to 5161
                     $this->setConfig($pjproto . "port-" . $ip, 5061);
                     needreload();
                 }
             }
         }
     } else {
         throw new \Exception("Can't change tls owner to unknown driver '{$driver}'");
     }
 }
Esempio n. 21
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;
}
function trunkalarmoptions_saveconfig()
{
    require_once 'DB.php';
    # clean up
    $engine = mysql_escape_string($_POST['engine']);
    $pbxname = mysql_escape_string($_POST['pbxname']);
    # Make SQL thing
    $sql = "UPDATE `trunkalarmoptions` SET";
    $sql .= " `engine`='{$engine}',";
    $sql .= " `pbxname`='{$pbxname}'";
    $sql .= " `trunkemail`='{$trunkemail}'";
    $sql .= " `trunkalarmext`='{$trunkext}'";
    $sql .= " `trunkalarmnumber`='{$trunknumber}'";
    $sql .= " LIMIT 1;";
    $sql = "UPDATE `trunkalarmoptions` SET";
    $sql .= " `engine`='{$engine}',";
    $sql .= " `pbxname`='{$pbxname}'";
    $sql .= " LIMIT 1;";
    $sql = "UPDATE `trunkalarmoptions` SET";
    $sql .= " `engine`='{$engine}',";
    $sql .= " `trunkemail`='{$trunkemail}'";
    $sql .= " LIMIT 1;";
    $sql = "UPDATE `trunkalarmoptions` SET";
    $sql .= " `engine`='{$engine}',";
    $sql .= " `trunkalarmext`='{$trunkext}'";
    $sql .= " LIMIT 1;";
    $sql = "UPDATE `trunkalarmoptions` SET";
    $sql .= " `engine`='{$engine}',";
    $sql .= " `trunkalarmnumber`='{$trunknumber}'";
    $sql .= " LIMIT 1;";
    sql($sql);
    needreload();
}
Esempio n. 23
0
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     $action = isset($request['action']) ? $request['action'] : '';
     if (isset($request['delete'])) {
         $action = 'delete';
     }
     $announcement_id = isset($request['announcement_id']) ? $request['announcement_id'] : false;
     $view = isset($request['view']) ? $request['view'] : 'form';
     $description = isset($request['description']) ? $request['description'] : '';
     $recording_id = isset($request['recording_id']) ? $request['recording_id'] : '';
     $allow_skip = isset($request['allow_skip']) ? $request['allow_skip'] : 0;
     $return_ivr = isset($request['return_ivr']) ? $request['return_ivr'] : 0;
     $noanswer = isset($request['noanswer']) ? $request['noanswer'] : 0;
     $post_dest = isset($request['post_dest']) ? $request['post_dest'] : '';
     $repeat_msg = isset($request['repeat_msg']) ? $request['repeat_msg'] : '';
     if (isset($request['goto0']) && $request['goto0']) {
         // 'ringgroup_post_dest'  'ivr_post_dest' or whatever
         $post_dest = $request[$request['goto0'] . '0'];
     }
     switch ($action) {
         case 'add':
             $_REQUEST['extdisplay'] = announcement_add($description, $recording_id, $allow_skip, $post_dest, $return_ivr, $noanswer, $repeat_msg);
             needreload();
             $this->freepbx->View->redirect_standard('extdisplay', 'view');
             break;
         case 'edit':
             announcement_edit($announcement_id, $description, $recording_id, $allow_skip, $post_dest, $return_ivr, $noanswer, $repeat_msg);
             needreload();
             $this->freepbx->View->redirect_standard('extdisplay', 'view');
             break;
         case 'delete':
             announcement_delete($_REQUEST['extdisplay']);
             needreload();
             $this->freepbx->View->redirect_standard();
             break;
     }
 }
 public function doConfigPageInit($page)
 {
     $request = $_REQUEST;
     $request['action'] = !empty($request['action']) ? $request['action'] : "";
     switch ($page) {
         case 'directory':
             //check for ajax request and process that immediately
             if (isset($_REQUEST['ajaxgettr'])) {
                 //got ajax request
                 $opts = $opts = explode('|', urldecode($_REQUEST['ajaxgettr']));
                 if ($opts[0] == 'all') {
                     echo directory_draw_entries_all_users($opts[1]);
                 } else {
                     if ($opts[0] != '') {
                         $real_id = $opts[0];
                         $name = '';
                         $realname = $opts[1];
                         $audio = 'vm';
                     } else {
                         $real_id = 'custom';
                         $name = $opts[1];
                         $realname = 'Custom Entry';
                         $audio = 'tts';
                     }
                     echo directory_draw_entries_tr($opts[0], $real_id, $name, $realname, $audio, '', $opts[2]);
                 }
                 exit;
             }
             $requestvars = array('id', 'action', 'entries', 'newentries', 'def_dir', 'Submit');
             foreach ($requestvars as $var) {
                 switch ($var) {
                     case 'def_dir':
                         $rvars_def = false;
                         break;
                     default:
                         $rvars_def = '';
                         break;
                 }
                 ${$var} = isset($_REQUEST[$var]) ? $_REQUEST[$var] : $rvars_def;
             }
             if (isset($Submit) && $Submit == 'Submit' && isset($def_dir) && $def_dir !== false) {
                 directory_save_default_dir($def_dir);
             }
             break;
     }
     if ($page == 'directory') {
         //get variables for directory_details
         $requestvars = array('id', 'dirname', 'description', 'announcement', 'callid_prefix', 'alert_info', 'repeat_loops', 'repeat_recording', 'invalid_recording', 'invalid_destination', 'retivr', 'say_extension');
         foreach ($requestvars as $var) {
             $vars[$var] = isset($_REQUEST[$var]) ? $_REQUEST[$var] : null;
         }
         $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
         $entries = isset($_REQUEST['entries']) ? $_REQUEST['entries'] : null;
         //$entries=(($entries)?array_values($entries):'');//reset keys
         switch ($action) {
             case 'edit':
                 //get real dest
                 $vars['invalid_destination'] = $_REQUEST[$_REQUEST['goto0'] . '0'];
                 $vars['id'] = directory_save_dir_details($vars);
                 \directory_save_dir_entries($vars['id'], $entries);
                 $this_dest = directory_getdest($vars['id']);
                 \fwmsg::set_dest($this_dest[0]);
                 needreload();
                 $_REQUEST['id'] = $vars['id'];
                 break;
             case 'delete':
                 directory_delete($vars['id']);
                 needreload();
                 break;
         }
     }
 }
Esempio n. 25
0
function voicemail_configprocess()
{
    //create vars from the request
    extract($_REQUEST);
    $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
    $extdisplay = isset($_REQUEST['extdisplay']) ? $_REQUEST['extdisplay'] : null;
    //if submitting form, update database
    switch ($action) {
        case "add":
            if (!isset($GLOBALS['abort']) || $GLOBALS['abort'] !== true) {
                $usage_arr = framework_check_extension_usage($_REQUEST['extension']);
                if (!empty($usage_arr)) {
                    $GLOBALS['abort'] = true;
                } else {
                    voicemail_mailbox_add($extdisplay, $_REQUEST);
                    needreload();
                }
            }
            break;
        case "del":
            // call remove before del, it needs to know context info
            //
            voicemail_mailbox_remove($extdisplay);
            voicemail_mailbox_del($extdisplay);
            needreload();
            break;
        case "edit":
            if (!isset($GLOBALS['abort']) || $GLOBALS['abort'] !== true) {
                voicemail_mailbox_del($extdisplay);
                if ($vm != 'disabled') {
                    voicemail_mailbox_add($extdisplay, $_REQUEST);
                }
                needreload();
            }
            break;
    }
}
Esempio n. 26
0
function fax_save_settings($settings)
{
    global $db;
    if (is_array($settings)) {
        foreach ($settings as $key => $value) {
            sql("REPLACE INTO fax_details (`key`, `value`) VALUES ('" . $key . "','" . $db->escapeSimple($value) . "')");
        }
    }
    needreload();
}
Esempio n. 27
0
/** Uninstall a module, but files remain
 * @param string   The name of the module to install
 * @param bool     If true, skips status and dependency checks
 * @return mixed   True if succesful, array of error messages if not succesful
 */
function module_uninstall($modulename, $force = false)
{
    global $db;
    $modules = module_getinfo($modulename);
    if (!isset($modules[$modulename])) {
        return array(_("Specified module not found"));
    }
    if (!$force) {
        if ($modules[$modulename]['status'] == MODULE_STATUS_NOTINSTALLED) {
            return array(_("Module not installed: cannot uninstall"));
        }
        if (($depmods = module_reversedepends($modulename)) !== false) {
            return array(_("Cannot disable: The following modules depend on this one: ") . implode(',', $depmods));
        }
    }
    $sql = "DELETE FROM modules WHERE modulename = '" . $db->escapeSimple($modulename) . "'";
    $results = $db->query($sql);
    if (DB::IsError($results)) {
        return array(_("Error updating database: ") . $results->getMessage());
    }
    if (!_module_runscripts($modulename, 'uninstall')) {
        return array(_("Failed to run un-installation scripts"));
    }
    needreload();
    return true;
}
Esempio n. 28
0
 public function delUser($id)
 {
     $sql = 'DELETE FROM xmpp_users WHERE user = :id';
     $sth = $this->db->prepare($sql);
     $sth->execute(array(":id" => $id));
     needreload();
     $this->saveOption('dirty', 'true');
 }
Esempio n. 29
0
 public function setRouteOrder($routes)
 {
     $dbh = $this->database();
     $stmt = $dbh->prepare('DELETE FROM `outbound_route_sequence` WHERE 1');
     $stmt->execute();
     $stmt = $dbh->prepare('INSERT INTO outbound_route_sequence (route_id, seq) VALUES (?,?)');
     $ret = array();
     foreach ($routes as $key => $value) {
         $seq = $key + 1;
         $ret[] = $stmt->execute(array($value, $seq));
     }
     needreload();
     return $ret;
 }
Esempio n. 30
0
function paging_add($xtn, $plist, $force_page, $duplex, $description = '', $default_group)
{
    global $db;
    // $plist contains a string of extensions, with \n as a seperator.
    // Split that up first.
    if (is_array($plist)) {
        $xtns = $plist;
    } else {
        $xtns = explode("\n", $plist);
    }
    foreach (array_keys($xtns) as $val) {
        $val = $db->escapeSimple(trim($xtns[$val]));
        // Sanity check input.
        $sql = "INSERT INTO paging_groups(page_number, ext) VALUES ('{$xtn}', '{$val}')";
        $db->query($sql);
    }
    $description = $db->escapeSimple(trim($description));
    $sql = "INSERT INTO paging_config(page_group, force_page, duplex, description) VALUES ('{$xtn}', '{$force_page}', '{$duplex}', '{$description}')";
    $db->query($sql);
    if ($default_group) {
        sql("DELETE FROM `admin` WHERE variable = 'default_page_grp'");
        sql("INSERT INTO `admin` (variable, value) VALUES ('default_page_grp', '{$xtn}')");
    } else {
        sql("DELETE FROM `admin` WHERE variable = 'default_page_grp' AND value = '{$xtn}'");
    }
    needreload();
}