📄 settings.module
字号:
<tr> <td>" . _("Record OUTGOING:") . " </td> <td> <input type='radio' name='record_out' value='Always' " . $ro_always . "/> " . _("Always") . " <input type='radio' name='record_out' value='Never' " . $ro_never . "/> " . _("Never") . " <input type='radio' name='record_out' value='Adhoc' " . $ro_on_demand . "/> " . _("On-Demand") . " </td> </tr> </table>"; } } // javascript enable options if (isset($_SESSION['ari_user']['voicemail_email']) && in_array('voicemail',array_keys($loaded_modules))) { foreach ($_SESSION['ari_user']['voicemail_email'] as $key => $value) { $var = "voicemail_email_$key"; $js_voicemail_email_disable .= " document.ari_settings.$var.disabled = false;"; $js_voicemail_email_enable .= " document.ari_settings.$var.disabled = true;"; } $js_voicemail_script = " if (document.ari_settings.voicemail_email_enable.checked) { document.ari_settings.voicemail_email_address.style.backgroundColor = '#FFF'; document.ari_settings.voicemail_email_address.disabled = false; document.ari_settings.voicemail_email_address.value='" . $voicemail_email_address . "'; document.ari_settings.voicemail_pager_address.style.backgroundColor = '#FFF'; document.ari_settings.voicemail_pager_address.disabled = false; document.ari_settings.voicemail_pager_address.value='" . $voicemail_pager_address . "'; " . $js_voicemail_email_disable . " } else { document.ari_settings.voicemail_email_address.style.backgroundColor = '#DDD'; document.ari_settings.voicemail_email_address.disabled = true; document.ari_settings.voicemail_pager_address.style.backgroundColor = '#DDD'; document.ari_settings.voicemail_pager_address.disabled = true; " . $js_voicemail_email_enable . " }"; } // build page content $ret .= checkErrorMessage(); if ($_SESSION['ari_user']['admin_settings']) { $headerText = _("Settings"); } else { $headerText = sprintf(_("Settings for %s (%s)"),$displayname,$exten); } $ret .= $display->displayHeaderText($headerText); $ret .= $display->displayLine(); $ret .= " <SCRIPT LANGUAGE='JavaScript'> <!-- Begin function disable_fields() { if (document.ari_settings.call_forward_enable.checked) { document.ari_settings.call_forward_number.style.backgroundColor = '#FFF'; document.ari_settings.call_forward_number.disabled = false; } else { document.ari_settings.call_forward_number.style.backgroundColor = '#DDD'; document.ari_settings.call_forward_number.disabled = true; } " . $js_voicemail_script . " } // End --> </script>"; $ret .= " " . $setLangText . " <form class='settings' name='ari_settings' action='' method='GET'> <input type=hidden name=m value=" . $m . "> <input type=hidden name=f value='action'> <input type=hidden name=a value='update'> <br> " . $set_call_forward_text . " <br> " . $set_voicemail_text . " <br> " . $set_callmonitor_text . " <br> <input name='submit' type='submit' value='" . _("Update") . "'> </form>"; return $ret; } /* * Sets Asterisk call forward setting * * @param $exten * Extension to modify * @param $state * Call forward enable or disable * @param $call_forward_number * Call forward number */ function setCallForward($exten,$state,$call_forward_number) { global $asterisk_manager_interface; if ($state) { $type_opt = "put"; $value_opt = $call_forward_number; } else { $type_opt = "del"; } $variable_opt = "CF"; $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database $type_opt $variable_opt $exten $value_opt\r\n\r\n"); } /* * Gets call forward number if set * * @param $exten * Extension to get information about * @return $number * call forward number returned if set */ function getCallForwardNumber($exten) { global $asterisk_manager_interface; $number = ''; $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database get CF $exten\r\n\r\n"); if (is_numeric($response)) { $number = $response; } $stripped = preg_replace('/-|\(|\)|\s/','',$_COOKIE['ari_call_forward_number']); if ($stripped==$number) { $number = $_COOKIE['ari_call_forward_number']; } return $number; } /* * Sets Asterisk call recording setting * * @param $exten * Extension to modify * @param $direction * Call direction * @param $state * State to set to */ function setRecordSettings($exten,$state_in,$state_out) { global $asterisk_manager_interface; if (version_compare($this->getFreePBXVersion(), '1.10', '<')) { if ($state_in=="Always") { $type_opt = "put"; $value_opt = " " . "ENABLED"; } elseif ($state_in=="Never") { $type_opt = "put"; $value_opt = " " . "DISABLED"; } else { $type_opt = "del"; $value_opt = ""; } $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database $type_opt RECORD-IN $exten $value_opt\r\n\r\n"); if ($state_out=="Always") { $type_opt = "put"; $value_opt = " " . "ENABLED"; } elseif ($state_out=="Never") { $type_opt = "put"; $value_opt = " " . "DISABLED"; } else { $type_opt = "del"; $value_opt = ""; } $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database $type_opt RECORD-OUT $exten $value_opt\r\n\r\n"); } else { $value_opt= "out=".$state_out."|in=".$state_in; $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database put AMPUSER $exten/recording $value_opt\r\n\r\n"); } } /* * Gets record settings for a protocol * * @param $table * Table to pull information from * @param $exten * Extension to get information about * @return $data * call monitor record settings */ function getProtocolRecordSettings($table,$exten) { global $asterisk_manager_interface; $data = array(); if (version_compare($this->getFreePBXVersion(), '1.10', '<')) { $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database get RECORD-IN $exten\r\n\r\n"); if (preg_match("/ENABLED/",$response)) { $data['record_in'] = 'Always'; } elseif (preg_match("/DISABLED/",$response)) { $data['record_in'] = 'Never'; } else { $data['record_in'] = 'Adhoc'; } $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database get RECORD-OUT $exten\r\n\r\n"); if (preg_match("/ENABLED/",$response)) { $data['record_out'] = 'Always'; } elseif (preg_match("/DISABLED/",$response)) { $data['record_out'] = 'Never'; } else { $data['record_out'] = 'Adhoc'; } } else { $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database get AMPUSER $exten/recording\r\n\r\n"); if (strstr($response,"in=Always")) { $data['record_in'] = 'Always'; } elseif (strstr($response,"in=Never")) { $data['record_in'] = 'Never'; } else { $data['record_in'] = 'Adhoc'; } if (strstr($response,"out=Always")) { $data['record_out'] = 'Always'; } elseif (strstr($response,"out=Never")) { $data['record_out'] = 'Never'; } else { $data['record_out'] = 'Adhoc'; } } return $data; } /* * Gets record settings * * @param $exten * Extension to get information about * @param $data * Reference to the variable to store the data in */ function getRecordSettings($exten) { // check protocol tables first $data = $this->getProtocolRecordSettings($this->protocol_table,$exten); return $data; } /* * Reloads Asterisk Configuration */ function reloadAsteriskVoicemail() { global $asterisk_manager_interface; $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: Reload app_voicemail.so\r\n\r\n"); } /* * Gets FreePBX Version */ function getFreePBXVersion() { if (isset($_SESSION['dbh_asterisk'])) { $sql = "SELECT * FROM admin WHERE variable = 'version'"; $results = $_SESSION['dbh_asterisk']->getAll($sql); if(DB::IsError($results)) { $_SESSION['ari_error'] = $results->getMessage(); } return $results[0][1]; } }}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -