</h2> <?php } else { ?> <h2><?php echo _("Add Queue"); ?> </h2> <?php } ?> <?php if ($extdisplay != '') { echo $delButton; $usage_list = framework_display_destination_usage(queues_getdest($extdisplay)); if (!empty($usage_list)) { ?> <a href="#" class="info"><?php echo $usage_list['text']; ?> :<span><?php echo $usage_list['tooltip']; ?> </span></a> <?php } } ?> <form autocomplete="off" name="editQ" action="<?php $_SERVER['PHP_SELF'];
public function doConfigPageInit($page) { $request = $_REQUEST; isset($request['action']) ? $action = $request['action'] : ($action = ''); //the extension we are currently displaying isset($request['extdisplay']) ? $extdisplay = $request['extdisplay'] : ($extdisplay = ''); isset($request['account']) ? $account = $request['account'] : ($account = ''); isset($request['name']) ? $name = $request['name'] : ($name = ''); isset($request['password']) ? $password = $request['password'] : ($password = ''); isset($request['agentannounce_id']) ? $agentannounce_id = $request['agentannounce_id'] : ($agentannounce_id = ''); isset($request['prefix']) ? $prefix = $request['prefix'] : ($prefix = ''); isset($request['alertinfo']) ? $alertinfo = $request['alertinfo'] : ($alertinfo = ''); isset($request['joinannounce_id']) ? $joinannounce_id = $request['joinannounce_id'] : ($joinannounce_id = ''); $maxwait = isset($request['maxwait']) ? $request['maxwait'] : ''; $cwignore = isset($request['cwignore']) ? $request['cwignore'] : '0'; $queuewait = isset($request['queuewait']) ? $request['queuewait'] : '0'; $rtone = isset($request['rtone']) ? $request['rtone'] : '0'; $qregex = isset($request['qregex']) ? $request['qregex'] : ''; $weight = isset($request['weight']) ? $request['weight'] : '0'; $autofill = isset($request['autofill']) ? $request['autofill'] : 'no'; $togglehint = isset($request['togglehint']) ? $request['togglehint'] : '0'; $dynmemberonly = isset($request['dynmemberonly']) ? $request['dynmemberonly'] : 'no'; $use_queue_context = isset($request['use_queue_context']) ? $request['use_queue_context'] : '0'; $exten_context = "from-queue"; $qnoanswer = isset($request['qnoanswer']) ? $request['qnoanswer'] : '0'; $callconfirm = isset($request['callconfirm']) ? $request['callconfirm'] : '0'; $callconfirm_id = isset($request['callconfirm_id']) ? $request['callconfirm_id'] : ''; $monitor_type = isset($request['monitor_type']) ? $request['monitor_type'] : ''; $monitor_heard = isset($request['monitor_heard']) ? $request['monitor_heard'] : '0'; $monitor_spoken = isset($request['monitor_spoken']) ? $request['monitor_spoken'] : '0'; $answered_elsewhere = isset($request['answered_elsewhere']) ? $request['answered_elsewhere'] : '0'; $skip_joinannounce = isset($request['skip_joinannounce']) ? $request['skip_joinannounce'] : ''; //cron code $cron_schedule = isset($request['cron_schedule']) ? $request['cron_schedule'] : 'never'; $cron_minute = isset($request['cron_minute']) ? $request['cron_minute'] : ''; $cron_hour = isset($request['cron_hour']) ? $request['cron_hour'] : ''; $cron_dow = isset($request['cron_dow']) ? $request['cron_dow'] : ''; $cron_month = isset($request['cron_month']) ? $request['cron_month'] : ''; $cron_dom = isset($request['cron_dom']) ? $request['cron_dom'] : ''; $cron_random = isset($request['cron_random']) ? $request['cron_random'] : false; if (isset($request['goto0']) && isset($request[$request['goto0'] . "0"])) { $goto = $request[$request['goto0'] . "0"]; } else { $goto = ''; } if (isset($request["members"])) { $members = explode("\n", $request["members"]); if (!$members) { $members = null; } foreach (array_keys($members) as $key) { //trim it $members[$key] = trim($members[$key]); // check if an agent (starts with a or A) $exten_prefix = strtoupper(substr($members[$key], 0, 1)); $this_member = preg_replace("/[^0-9#\\,*]/", "", $members[$key]); switch ($exten_prefix) { case 'A': $exten_type = 'Agent'; break; case 'P': $exten_type = 'PJSIP'; break; case 'S': $exten_type = 'SIP'; break; case 'X': $exten_type = 'IAX2'; break; case 'Z': $exten_type = 'ZAP'; break; case 'D': $exten_type = 'DAHDI'; break; default: $exten_type = 'Local'; } $penalty_pos = strrpos($this_member, ","); if ($penalty_pos === false) { $penalty_val = 0; } else { $penalty_val = substr($this_member, $penalty_pos + 1); // get penalty $this_member = substr($this_member, 0, $penalty_pos); // clean up ext $this_member = preg_replace("/[^0-9#*]/", "", $this_member); //clean out other ,'s $penalty_val = preg_replace("/[^0-9*]/", "", $penalty_val); // get rid of #'s if there $penalty_val = $penalty_val == "" ? 0 : $penalty_val; } // remove blanks // prefix with the channel if (empty($this_member)) { unset($members[$key]); } else { switch ($exten_type) { case 'Agent': case 'SIP': case 'IAX2': case 'PJSIP': case 'ZAP': case 'DAHDI': $members[$key] = "{$exten_type}/{$this_member},{$penalty_val}"; break; case 'Local': $members[$key] = "{$exten_type}/{$this_member}@{$exten_context}/n,{$penalty_val}"; } } } // check for duplicates, and re-sequence // $members = array_values(array_unique($members)); } if (isset($request["dynmembers"])) { $dynmembers = explode("\n", $request["dynmembers"]); if (!$dynmembers) { $dynmembers = null; } } // 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 { //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); } else { queues_add($account, $name, $password, $prefix, $goto, $agentannounce_id, $members, $joinannounce_id, $maxwait, $alertinfo, $cwignore, $qregex, $queuewait, $use_queue_context, $dynmembers, $dynmemberonly, $togglehint, $qnoanswer, $callconfirm, $callconfirm_id, $monitor_type, $monitor_heard, $monitor_spoken, $answered_elsewhere); needreload(); $this_dest = queues_getdest($account); \fwmsg::set_dest($this_dest[0]); $_REQUEST['extdisplay'] = $account; } break; case "delete": queues_del($account); unset($_REQUEST['view']); unset($_REQUEST['extdisplay']); needreload(); break; case "edit": //just delete and re-add queues_del($account); queues_add($account, $name, $password, $prefix, $goto, $agentannounce_id, $members, $joinannounce_id, $maxwait, $alertinfo, $cwignore, $qregex, $queuewait, $use_queue_context, $dynmembers, $dynmemberonly, $togglehint, $qnoanswer, $callconfirm, $callconfirm_id, $monitor_type, $monitor_heard, $monitor_spoken, $answered_elsewhere); needreload(); break; } } } }