Пример #1
0
            if ($type == 'var' || $type == 'std') {
                $num[$type] = preg_replace("/[^\\d]/", '', $value);
                $write = 1;
                $type = false;
            }
        }
    }
    if ($write == 1) {
        foreach ($cases as $case => $gnore2) {
            $ret = gs_callforward_set($user_name, 'internal', $case, 'std', $num['std'], $timeout);
            $ret = gs_callforward_set($user_name, 'internal', $case, 'var', $num['var'], $timeout);
            $ret = gs_callforward_activate($user_name, 'internal', $case, $internal_val[$case]);
        }
        foreach ($cases as $case => $gnore2) {
            $ret = gs_callforward_set($user_name, 'external', $case, 'std', $num['std'], $timeout);
            $ret = gs_callforward_set($user_name, 'external', $case, 'var', $num['var'], $timeout);
            $ret = gs_callforward_activate($user_name, 'external', $case, $external_val[$case]);
        }
        gs_vm_activate($user_name, 'internal', $vm['internal']);
        gs_vm_activate($user_name, 'external', $vm['external']);
    }
}
################################# SET FEATURE }
#################################### SELECT PROPERTIES {
if (($type == 'internal' || $type == 'external') && !isset($_REQUEST['key'])) {
    $mac = preg_replace('/[^\\dA-Z]/', '', strtoupper(trim(@$_REQUEST['m'])));
    ob_start();
    echo $callforward_doctype . "\n";
    $user_id_check = $db->executeGetOne('SELECT `user_id` FROM `phones` WHERE `mac_addr`=\'' . $db->escape($mac) . '\'');
    if ($user_id != $user_id_check) {
        _err('Not authorized');
Пример #2
0
$warnings = array();
if (@$_REQUEST['action'] === 'save' && $disabled == '') {
    $num_std = preg_replace('/[^0-9vm*]/', '', @$_REQUEST['num-std']);
    $num_var = preg_replace('/[^0-9vm*]/', '', @$_REQUEST['num-var']);
    //$num_vml = 'vm'. $_SESSION['sudo_user']['info']['ext'];
    $timeout = abs((int) @$_REQUEST['timeout']);
    if ($timeout < 1) {
        $timeout = 1;
    }
    foreach ($sources as $src => $ignore) {
        foreach ($cases as $case => $gnore2) {
            $ret = gs_callforward_set($_SESSION['sudo_user']['name'], $src, $case, 'std', $num_std, $timeout);
            if (isGsError($ret)) {
                $warnings['std'] = __('Fehler beim Setzen der Std.-Umleitungsnummer') . ' (' . $ret->getMsg() . ')';
            }
            $ret = gs_callforward_set($_SESSION['sudo_user']['name'], $src, $case, 'var', $num_var, $timeout);
            if (isGsError($ret)) {
                $warnings['var'] = __('Fehler beim Setzen der Tempor&auml;ren Umleitungsnummer') . ' (' . $ret->getMsg() . ')';
            }
            /*
            	$vmail_rec_num = 0;
            	//Voicemail or just Announce-File
            	if (substr(@$_REQUEST[$src.'-'.$case],0,5) === 'vmln-') {
            		//Play only Announce-File with Number n
            		$idx =(int)substr(@$_REQUEST[$src.'-'.$case],5);
            		$vmail_rec_num = $vm_rec_num_idx_table[$idx];
            		$num_vml = 'vm*'. $_SESSION['sudo_user']['info']['ext'];
            		$_REQUEST[$src.'-'.$case] = 'vml';
            	} else if (substr(@$_REQUEST[$src.'-'.$case],0,4) === 'vml-') {
            		//Voicemail with Anncounce-File Number n
            		$idx =(int)substr(@$_REQUEST[$src.'-'.$case],4);
Пример #3
0
function setForward($userinfo, $source, $destination, $plist)
{
    $source = (int) $source;
    $destination = (int) $destination;
    switch ($source) {
        case 0:
            $gs_source = 'internal';
            $gs_case = 'always';
            $timeout = 0;
            break;
        case 1:
            $gs_source = 'internal';
            $gs_case = 'busy';
            $timeout = 0;
            break;
        case 2:
            $gs_source = 'internal';
            $gs_case = 'unavail';
            $timeout = $plist['timeout'];
            break;
        case 3:
            $gs_source = 'internal';
            $gs_case = 'offline';
            $timeout = 0;
            break;
        case 4:
            $gs_source = 'external';
            $gs_case = 'always';
            $timeout = 0;
            break;
        case 5:
            $gs_source = 'external';
            $gs_case = 'busy';
            $timeout = 0;
            break;
        case 5:
            $gs_source = 'external';
            $gs_case = 'unavail';
            $timeout = $plist['timeout'];
            break;
        case 7:
            $gs_source = 'external';
            $gs_case = 'offline';
            $timeout = 0;
            break;
        default:
            $gs_source = '';
            $gs_case = '';
            $timeout = 0;
    }
    switch ($destination) {
        case 1:
            $gs_type = 'std';
            $number = $plist['standardNumber'];
            break;
        case 2:
            $gs_type = 'var';
            $number = $plist['tempNumber'];
            break;
        case 3:
            $gs_type = 'vml';
            $number = 'vm' . $userinfo['ext'];
            break;
        case 4:
            $gs_type = 'vml';
            $number = 'vm*' . $userinfo['ext'];
        default:
            $gs_type = '';
            $number = $plist['standardNumber'];
    }
    gs_log(GS_LOG_NOTICE, 'setting call forward from ' . $gs_source . ' in case of ' . $gs_case . ' to ' . $gs_type . ' (number=' . $number . ', timeout=' . $timeout . ')');
    gs_callforward_set($userinfo['user'], $gs_source, $gs_case, $gs_type, $number, $timeout);
    if ($gs_type == '') {
        $gs_type = 'no';
    }
    gs_callforward_activate($userinfo['user'], $gs_source, $gs_case, $gs_type);
}
             if (substr(@$_REQUEST[$src . '-' . $case], 0, 4) === 'vml-') {
                 //Voicemail with Anncounce-File Number n
                 $idx = (int) substr(@$_REQUEST[$src . '-' . $case], 4);
                 $vmail_rec_num = $vm_rec_num_idx_table[$idx];
                 $num_vml = 'vm' . $_SESSION['sudo_user']['info']['ext'];
                 $_REQUEST[$src . '-' . $case] = 'vml';
             } else {
                 if (@$_REQUEST[$src . '-' . $case] === 'vmln') {
                     $num_vml = 'vm*' . $_SESSION['sudo_user']['info']['ext'];
                     $_REQUEST[$src . '-' . $case] = 'vml';
                 } else {
                     $num_vml = 'vm' . $_SESSION['sudo_user']['info']['ext'];
                 }
             }
         }
         $ret = gs_callforward_set($_SESSION['sudo_user']['name'], $src, $case, 'vml', $num_vml, $timeout, $vmail_rec_num);
         if (isGsError($ret)) {
             $warnings['vml'] = __('Fehler beim Setzen der AB-Nummer') . ' (' . $ret->getMsg() . ')';
         }
         $ret = gs_callforward_activate($_SESSION['sudo_user']['name'], $src, $case, @$_REQUEST[$src . '-' . $case]);
         if (isGsError($ret)) {
             $warnings['act'] = __('Fehler beim Aktivieren der Umleitungsnummer') . ' (' . $ret->getMsg() . ')';
         }
     }
 }
 /*
 $vm_internal = (bool)@$_REQUEST['vm-internal'];
 $vm_external = (bool)@$_REQUEST['vm-external'];
 $ret = gs_vm_activate( $_SESSION['sudo_user']['name'], 'internal', $vm_internal );
 if (isGsError($ret))
 	$warnings['vm_act_i'] = __('Fehler beim (De-)Aktivieren des Anrufbeantworters von intern') .' ('. $ret->getMsg() .')';
Пример #5
0
                $write = 1;
                $type = false;
            }
        }
    }
    if ($write == 1) {
        foreach ($cases as $case => $gnore2) {
            $ret = gs_callforward_set($user_name, 'internal', $case, 'std', $num['std'], $timeout);
            $ret = gs_callforward_set($user_name, 'internal', $case, 'var', $num['var'], $timeout);
            $ret = gs_callforward_set($user_name, 'internal', $case, 'vml', $callforwards['internal'][$case]['number_vml'], $timeout);
            $ret = gs_callforward_activate($user_name, 'internal', $case, $internal_val[$case]);
        }
        foreach ($cases as $case => $gnore2) {
            $ret = gs_callforward_set($user_name, 'external', $case, 'std', $num['std'], $timeout);
            $ret = gs_callforward_set($user_name, 'external', $case, 'var', $num['var'], $timeout);
            $ret = gs_callforward_set($user_name, 'external', $case, 'vml', $callforwards['external'][$case]['number_vml'], $timeout);
            $ret = gs_callforward_activate($user_name, 'external', $case, $external_val[$case]);
        }
        if (GS_BUTTONDAEMON_USE == true) {
            gs_diversion_changed_ui($user);
        }
    }
}
################################# SET FEATURE }
#################################### SELECT PROBERTIES {
if (($type == 'internal' || $type == 'external') && !isset($_REQUEST['key'])) {
    $mac = preg_replace('/[^\\dA-Z]/', '', strToUpper(trim(@$_REQUEST['m'])));
    $user_name = $db->executeGetOne('SELECT `user` FROM `users` WHERE `id`=\'' . $db->escape($user_id) . '\'');
    ob_start();
    echo '<?', 'xml version="1.0" encoding="utf-8"?', '>', "\n";
    $user_id_check = $db->executeGetOne('SELECT `user_id` FROM `phones` WHERE `mac_addr`=\'' . $db->escape($mac) . '\'');
Пример #6
0
        }
    } else {
        if ($active == $callforwards[$origin]['always']['active']) {
            if ($active == 'var' && $callforwards[$origin]['always']['number_var'] == $value) {
                $active = 'no';
            } else {
                if ($active != 'var') {
                    $active = 'no';
                }
            }
        }
    }
    if (strlen($origin) == 0) {
        $callforwards['internal']['always']['active'] = $active;
        $callforwards['external']['always']['active'] = $active;
    } else {
        $callforwards[$origin]['always']['active'] = $active;
    }
    if ($active == 'var') {
        gs_callforward_set($user['user'], 'internal', 'always', 'var', $value, $callforwards['internal']['always']['timeout']);
        gs_callforward_set($user['user'], 'external', 'always', 'var', $value, $callforwards['external']['always']['timeout']);
    }
    gs_callforward_activate($user['user'], 'internal', 'always', $callforwards['internal']['always']['active']);
    gs_callforward_activate($user['user'], 'external', 'always', $callforwards['external']['always']['active']);
    if ($active != 'no') {
        aastra_textscreen(htmlEnt(__('Rufumleitung')), htmlEnt(__('Rufumleitung aktiviert')), 3);
    } else {
        aastra_textscreen(htmlEnt(__('Rufumleitung')), htmlEnt(__('Rufumleitung deaktiviert')), 3);
    }
    gs_diversion_changed_ui($user['name']);
}
Пример #7
0
                $write = 1;
                $type = false;
            }
        }
    }
    if ($write == 1) {
        foreach ($cases as $case => $gnore2) {
            $ret = gs_callforward_set($user_name, "internal", $case, "std", $num["std"], $timeout);
            $ret = gs_callforward_set($user_name, "internal", $case, "var", $num["var"], $timeout);
            $ret = gs_callforward_set($user_name, "internal", $case, "vml", $callforwards["internal"][$case]["number_vml"], $timeout);
            $ret = gs_callforward_activate($user_name, "internal", $case, $internal_val[$case]);
        }
        foreach ($cases as $case => $gnore2) {
            $ret = gs_callforward_set($user_name, "external", $case, "std", $num["std"], $timeout);
            $ret = gs_callforward_set($user_name, "external", $case, "var", $num["var"], $timeout);
            $ret = gs_callforward_set($user_name, "external", $case, "vml", $callforwards["external"][$case]["number_vml"], $timeout);
            $ret = gs_callforward_activate($user_name, "external", $case, $external_val[$case]);
        }
        if (GS_BUTTONDAEMON_USE == true) {
            gs_diversion_changed_ui($user);
        }
    }
}
//////////////////// SET FEATURE }
//////////////////// SELECT PROPERTIES {
if (($type == "internal" || $type == "external") && !isset($_REQUEST["key"])) {
    $mac = preg_replace("/[^\\dA-Z]/", "", strtoupper(trim(@$_REQUEST["m"])));
    $user_name = $db->executeGetOne("SELECT `user` FROM `users` WHERE `id`='" . $db->escape($user_id) . "'");
    ob_start();
    echo $callforward_doctype . "\n";
    $user_id_check = $db->executeGetOne('SELECT `user_id` FROM `phones` WHERE `mac_addr`=\'' . $db->escape($mac) . '\'');
Пример #8
0
function gs_callforward_timeout_set($user, $timeout = 20)
{
    if (!preg_match('/^[a-z0-9\\-_.]+$/', $user)) {
        return new GsError('User must be alphanumeric.');
    }
    $timeout = (int) $timeout;
    if ($timeout > 250) {
        $timeout = 250;
    } elseif ($timeout < 1) {
        $timeout = 1;
    }
    # connect to db
    #
    $db = gs_db_master_connect();
    if (!$db) {
        return new GsError('Could not connect to database.');
    }
    # get user_id
    #
    $user_id = $db->executeGetOne('SELECT `id` FROM `users` WHERE `user`=\'' . $db->escape($user) . '\'');
    if (!$user_id) {
        return new GsError('Unknown user.');
    }
    # get user_code
    #
    $user_code = $db->executeGetOne('SELECT `user` FROM `users` WHERE `id`=' . $user_id);
    # get all call forwards
    #
    $cf = @gs_callforward_get($user_code);
    if (isGsError($cf)) {
        gs_script_error('Could not get call forwards (' . $cf->getMsg() . ')');
    }
    foreach ($cf as $source => $arr1) {
        foreach ($arr1 as $case => $arr) {
            if ($case == 'unavail') {
                @gs_callforward_set($user_code, $source, $case, 'std', $arr['number_std'], $timeout);
                @gs_callforward_set($user_code, $source, $case, 'var', $arr['number_var'], $timeout);
            }
        }
    }
    return true;
}