Example #1
0
function get_user_config($user, $menu_source, $menu_mode)
{
    global $language;
    # Retrieve phone data
    $update = 0;
    $header = Aastra_decode_HTTP_header();
    $header['model'] = strtolower($header['model']);
    $is_softkeys_supported = Aastra_is_softkeys_supported();
    # Read all menu
    $all = Aastra_readINIfile($menu_source . '.menu', '#', '=');
    # Get user config
    if ($is_softkeys_supported and $menu_mode == 'dynamic') {
        $config = Aastra_get_user_context($user, 'mymenu' . '_' . $menu_source);
    } else {
        $config = NULL;
    }
    # File does not exist
    if ($config == NULL) {
        unset($all['RESERVED']);
        foreach ($all as $key => $value) {
            if ($value[$header['model']] == 'no') {
                unset($all[$key]);
            } else {
                $all[$key]['title'] = Aastra_get_label($all[$key]['title'], $language);
            }
        }
        Aastra_natsort2d($all, 'title');
        foreach ($all as $key => $value) {
            $config['menu'][] = $key;
        }
        if ($is_softkeys_supported and $menu_mode == 'dynamic') {
            $update = 1;
        }
    } else {
        # Read config file
        foreach ($config['menu'] as $key => $value) {
            if ($all[$value] == NULL or $all[$value][$header['model']] == 'no') {
                unset($config['menu'][$key]);
                $update = 1;
            }
        }
    }
    # Read final file
    if ($update == 1) {
        Aastra_save_user_context($user, 'mymenu' . '_' . $menu_source, $config);
        unset($config);
        $config = Aastra_get_user_context($user, 'mymenu' . '_' . $menu_source);
    }
    # Return array
    return $config;
}
Example #2
0
     } else {
         $object->addEntry('Dial:' . $paused);
     }
     break;
     # Forward
 # Forward
 case 'forward':
 case 'forward2':
 case 'dselect':
 case 'reverse':
     # Retrieve directory
     if ($action == 'forward') {
         # Retrieve list of users
         $directory = Aastra_get_user_directory_Asterisk();
         # Sort Directory by name
         Aastra_natsort2d($directory, 'name');
         # Complete directory
         foreach ($directory as $key => $value) {
             if ($value['number'] == $user) {
                 unset($directory[$key]);
             } else {
                 if ($value['voicemail'] == 'default') {
                     $value['select'] = False;
                 } else {
                     unset($directory[$key]);
                 }
             }
         }
         # Save the session
         $array = array('directory' => base64_encode(serialize($directory)));
         Aastra_save_session('vmail', '600', $array, $ext);
function Aastra_get_vmessages_Asterisk($user)
{
    global $AA_VM_BOXBASE;
    global $AA_VM_DIRMODE;
    # No message by default
    $messages = array();
    # VM root directory
    $dir = $AA_VM_BOXBASE . '/' . $user;
    # List of folders
    $folders = array('INBOX', 'Old');
    # Retrieve messages
    foreach ($folders as $folder) {
        # Create directories if needed
        if (!is_dir($AA_VM_BOXBASE)) {
            umask(00);
            mkdir($AA_VM_BOXBASE, $AA_VM_DIRMODE);
        }
        if (!is_dir($AA_VM_BOXBASE . '/' . $user)) {
            umask(00);
            mkdir($AA_VM_BOXBASE . '/' . $user, $AA_VM_DIRMODE);
        }
        if (!is_dir($AA_VM_BOXBASE . '/' . $user . '/' . $folder)) {
            umask(00);
            mkdir($AA_VM_BOXBASE . '/' . $user . '/' . $folder, $AA_VM_DIRMODE);
        }
        # Read directory
        if ($handle = @opendir($dir . '/' . $folder)) {
            while (false !== ($file = @readdir($handle))) {
                if (preg_match("/^(msg(.*))\\.txt\$/", $file, $m)) {
                    $info = array();
                    $info['txtfile'] = $dir . '/' . $folder . '/' . $file;
                    $info['playname'] = $dir . '/' . $folder . '/' . $m[1];
                    $info['id'] = $m[2];
                    $info['folder'] = $folder;
                    if ($lines = @file($info['txtfile'])) {
                        foreach ($lines as $line) {
                            if (preg_match("/^([a-z]*)=(.*)\$/", rtrim($line), $m) || preg_match("/^([a-z]*) = (.*)\$/", rtrim($line), $m)) {
                                $info[$m[1]] = $m[2];
                            }
                        }
                        $messages[] = $info;
                    }
                }
            }
        }
    }
    # Sort messages by time starting with the latest one
    Aastra_natsort2d($messages, 'origtime');
    $messages = array_reverse($messages);
    foreach ($messages as $key => $value) {
        $messages[$key]['number'] = $key;
    }
    # Return message list
    return $messages;
}
Example #4
0
     if ($nb_softkeys == 6) {
         $object->addSoftkey('5', Aastra_get_label('Back', $language), $XML_SERVER . '&confno=' . $confno);
         $object->addSoftkey('6', Aastra_get_label('Exit', $language), 'SoftKey:Exit');
     } else {
         $object->addSoftkey('9', Aastra_get_label('Back', $language), $XML_SERVER . '&confno=' . $confno);
         $object->addSoftkey('10', Aastra_get_label('Exit', $language), 'SoftKey:Exit');
         $object->setCancelAction($XML_SERVER . '&confno=' . $confno);
     }
 } else {
     # Retrieve last page
     $last = intval($nbuser / AASTRA_MAXLINES);
     if ($nbuser - $last * AASTRA_MAXLINES != 0) {
         $last++;
     }
     # Sort by name
     Aastra_natsort2d($meetmechannel, '2');
     # Prepare object
     require_once 'AastraIPPhoneTextMenu.class.php';
     $object = new AastraIPPhoneTextMenu();
     $object->setDestroyOnExit();
     if (Aastra_is_style_textmenu_supported()) {
         $object->setStyle('none');
     }
     if ($last == 1) {
         $object->setTitle(sprintf(Aastra_get_label('Conference %s', $language), $confno));
     } else {
         $object->setTitle(sprintf(Aastra_get_label('Conference %s (%s/%s)', $language), $confno, $page, $last));
     }
     $new_selection = 1;
     $index = 0;
     $user = Aastra_get_userdevice_Asterisk($ext);