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; }
} 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; }
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);