diff options
Diffstat (limited to 'fs_selfservice/fri/modules/phonefeatures.module')
-rw-r--r-- | fs_selfservice/fri/modules/phonefeatures.module | 342 |
1 files changed, 0 insertions, 342 deletions
diff --git a/fs_selfservice/fri/modules/phonefeatures.module b/fs_selfservice/fri/modules/phonefeatures.module deleted file mode 100644 index 89dc903bf..000000000 --- a/fs_selfservice/fri/modules/phonefeatures.module +++ /dev/null @@ -1,342 +0,0 @@ -<?php -//***************************************************************************** -class PhoneFeatures { -//***************************************************************************** - function rank() { - - $rank = 4; - return $rank; - } - -//***************************************************************************** - function init() { - } -//***************************************************************************** - function navMenu($args) { - - global $ARI_NO_LOGIN; - global $SETTINGS_ALLOW_PHONE_SETTINGS; - global $SETTINGS_ALLOW_CALLFORWARD_SETTINGS; - - // If we're not allowing call forwarding AND PHONE SETTINGS get out of here - if (!$SETTINGS_ALLOW_PHONE_SETTINGS && !$SETTINGS_ALLOW_CALLFORWARD_SETTINGS) return ""; - - $ret .= " - <p><small><small><a href='" . $_SESSION['ARI_ROOT'] . "?m=PhoneFeatures&f=display'>" . _("Phone Features") . "</a></small></small></p>"; - - return $ret; - } -//***************************************************************************** - function action($args) { - - global $ARI_ADMIN_USERNAME; - global $SETTINGS_ALLOW_PHONE_SETTINGS; - global $SETTINGS_ALLOW_CALLFORWARD_SETTINGS; - - // args - $m = getArgument($args,'m'); - $a = getArgument($args,'a'); - $lang_code = getArgument( $args,'lang_code'); - $exten = $_SESSION['ari_user']['extension']; - - if ($a=='update') { - - if ($SETTINGS_ALLOW_PHONE_SETTINGS) { - if ($exten!=$ARI_ADMIN_USERNAME) { - $this->storePhoneSetting( $args, $exten, 'call_waiting', 'CW', 'ENABLED'); - $this->storePhoneSetting( $args, $exten, 'do_not_disturb', 'DND', 'YES'); - } - } - - if ($SETTINGS_ALLOW_CALLFORWARD_SETTINGS) { - if ($exten!=$ARI_ADMIN_USERNAME) { - $this->storeCallForwardNumber( $args, $exten, 'call_forward', 'CF'); - $this->storeCallForwardNumber( $args, $exten, 'call_forward_busy', 'CFB'); - $this->storeCallForwardNumber( $args, $exten, 'call_forward_unavailable', 'CFU'); - } - } - } - - // redirect to see updated page - $ret .= " - <head> - <script> - <!-- - window.location = \"" . $_SESSION['ARI_ROOT'] . "?m=" . $m . "\" - // --> - </script> - </head>"; - - return $ret; - } -//***************************************************************************** -function display($args) { - - global $STANDALONE; - global $ARI_ADMIN_USERNAME; - global $SETTINGS_ALLOW_PHONE_SETTINGS; - global $SETTINGS_ALLOW_CALLFORWARD_SETTINGS; - - // args - $m = getArgument($args,'m'); - $a = getArgument($args,'a'); - $lang_code = getArgument( $args,'lang_code'); - $exten = $_SESSION['ari_user']['extension']; - - $displayname = $_SESSION['ari_user']['displayname']; - $exten = $_SESSION['ari_user']['extension']; - - $display = new DisplaySearch(); - - // build controls - if ($exten!=$ARI_ADMIN_USERNAME) { - - if ($SETTINGS_ALLOW_PHONE_SETTINGS) { - $dnd_cw_text = "<table class='settings'>"; - $dnd_cw_text.= "<tr><td><h3>" . _("Phone Features") . "</h3></td></tr>"; - - $dnd_cw_text.= $this->displayPhoneControls( $exten, 'call_waiting', 'CW', "Call Waiting"); - $dnd_cw_text.= $this->displayPhoneControls( $exten, 'do_not_disturb', 'DND', "Do Not Disturb"); - - $dnd_cw_text .= "</table>"; - } - - if ($SETTINGS_ALLOW_CALLFORWARD_SETTINGS) { - - $set_call_forward_text .= "<SCRIPT LANGUAGE='JavaScript'> - <!-- Begin - function rowCounter(field, maxlimit) { - temp = field.value.split('\u000A',maxlimit+1) - field.value = temp.join('\u000A') - if (temp.length == maxlimit+1) { - field.value = field.value.substring(0, field.value.length-1) - } - } - - 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; - } - - if (document.ari_settings.call_forward_busy_enable.checked) { - document.ari_settings.call_forward_busy_number.style.backgroundColor = '#FFF'; - document.ari_settings.call_forward_busy_number.disabled = false; - } - else { - document.ari_settings.call_forward_busy_number.style.backgroundColor = '#DDD'; - document.ari_settings.call_forward_busy_number.disabled = true; - } - - if (document.ari_settings.call_forward_unavailable_enable.checked) { - document.ari_settings.call_forward_unavailable_number.style.backgroundColor = '#FFF'; - document.ari_settings.call_forward_unavailable_number.disabled = false; - } - else { - document.ari_settings.call_forward_unavailable_number.style.backgroundColor = '#DDD'; - document.ari_settings.call_forward_unavailable_number.disabled = true; - } - } - // End --> - </script>"; - - $set_call_forward_text.= "<table class='settings'>"; - $set_call_forward_text.= "<tr><td><h3>" . _("Call Forwarding") . "</h3></td></tr>"; - - $set_call_forward_text.= $this->displayCallForwardControls( $exten, 'call_forward', 'CF', "Unconditional:"); - $set_call_forward_text.= $this->displayCallForwardControls( $exten, 'call_forward_unavailable', 'CFU', "Unavailable:"); - $set_call_forward_text.= $this->displayCallForwardControls( $exten, 'call_forward_busy', 'CFB', "Busy:"); - - $set_call_forward_text .= "</table>"; - } - } - - // build page content - $ret .= checkErrorMessage(); - - if ($_SESSION['ari_user']['admin_settings']) { - $headerText = _("Phone Features"); - } else { - $headerText = sprintf(_("Phone Features for %s (%s)"),$displayname,$exten); - } - - $ret .= $display->displayHeaderText($headerText); - $ret .= $display->displayLine(); - $ret .= " - <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> - " . $dnd_cw_text . " - <br> - " . $set_call_forward_text . " - <br> - <input name='submit' type='submit' value='" . _("Update") . "'> - </form>"; - -return $ret; -} -//***************************************************************************** - function setPhoneSetting( $databaseCallFwdType, $exten, $state_value) { - - global $asterisk_manager_interface; - - $type_opt = ($state_value != "") ? "put":"del"; - - $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database $type_opt $databaseCallFwdType $exten $state_value\r\n\r\n"); - } - -//***************************************************************************** - function getPhoneSetting($exten, $databaseCallFwdType) { - - global $asterisk_manager_interface; - $number = ''; - - $result = false; - $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database get $databaseCallFwdType $exten\r\n\r\n"); - if (stristr($response, 'ENABLED')) { - $result = true; - } - elseif (stristr($response, 'YES')) { - $result = true; - } - - return $result; - } -//***************************************************************************** - function storePhoneSetting( $args, $exten, $settingType, $databaseCallFwdType, $state_value) - { - $setting_enable = getArgument( $args, $settingType . '_enable'); - - $this->setPhoneSetting( $databaseCallFwdType, $exten, ($setting_enable == 'checked')?$state_value:""); - } - -//***************************************************************************** - function displayPhoneControls( $exten, $callFwdType, $databaseCallFwdType, $title) - { - - $phone_setting_enable = ($this->getPhoneSetting($exten, $databaseCallFwdType)) ? 'checked':''; - - $ret = "\n<tr>"; - $ret.= "<td>"; - $ret.= "<label><input " . $phone_setting_enable . " type=checkbox name='" . $callFwdType . "_enable' value='checked' >"; - $ret.= "<small>" . _($title) . "</small></label>"; - $ret.= "</td>"; - $ret.= "</tr>\n"; - - 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 - * @param $variable_opt - * Call forward type (CF, CFU, CFB) - */ - function setCallForward($exten,$state,$call_forward_number, $variable_opt = "CF") { - - global $asterisk_manager_interface; - - if ($state) { - $type_opt = "put"; - $value_opt = $call_forward_number; - } - else { - $type_opt = "del"; - } - - $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 - * @param $variable_opt - * Call forward type (CF, CFU, CFB) - */ - function getCallForwardNumber($exten, $variable_opt = "CF") { - - global $asterisk_manager_interface; - - $number = ''; - - $response = $asterisk_manager_interface->Command("Action: Command\r\nCommand: database get $variable_opt $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; - } - - - function storeCallForwardNumber( $args, $exten, $callFwdType, $databaseCallFwdType) - { - $call_forward_enable = getArgument($args, $callFwdType . '_enable'); - $call_forward_number = getArgument($args, $callFwdType . '_number'); - - $stripped_call_forward_number = preg_replace('/-|\(|\)|\s/','',$call_forward_number); - - if ($call_forward_enable && !is_numeric($stripped_call_forward_number)) { - $_SESSION['ari_error'] = _("Call forward number not changed") . "<br>" . - sprintf(_("Number %s must contain dial numbers (characters like '(', '-', and ')' are ok)"), $call_forward_number); - } - else { - $this->setCallForward( $exten, $call_forward_enable, $stripped_call_forward_number, $databaseCallFwdType); - - // store cookie - $stripped = preg_replace('/-|\(|\)|\s/','',$_COOKIE['ari_' . $callFwdType]); - if ($call_forward_number && $stripped!=$stripped_call_forward_number) { - setcookie('ari_' . $callFwdType, $call_forward_number, time()+365*24*60*60); - } - } - } - - function displayCallForwardControls( $exten, $callFwdType, $databaseCallFwdType, $title) - { - $call_forward_number = $this->getCallForwardNumber($exten, $databaseCallFwdType); - - // If we have a value, we want the item checked - if ($call_forward_number) { - $call_forward_enable = 'checked'; - } - else { - $call_forward_number = $_COOKIE['ari_' . $callFwdType ]; - $call_forward_text_box_options = "disabled style='background: #DDD;'"; - } - - $ret = "\n<tr>"; - $ret.= "<td>" . _($title) . "</td>"; - $ret.= "<td>"; - $ret.= "<input " . $call_forward_text_box_options . " name='" . $callFwdType . "_number' type='text' size=24 value='" . $call_forward_number . "'>"; - $ret.= "</td>"; - $ret.= "<td>"; - $ret.= "<input " . $call_forward_enable . " type=checkbox name='" . $callFwdType . "_enable' value='checked' OnClick=\"disable_fields(); return true;\">"; - $ret.= "<small>" . _("Enable") . "</small>"; - $ret.= "</td>"; - $ret.= "</tr>\n"; - - return $ret; - } -} // class -?> |