Files
aastra-xml-php/xml-xampp/menu/mymenu.php
2018-02-15 23:20:25 +01:00

622 lines
25 KiB
PHP

<?php
#############################################################################
# Mymenu
#
# Aastra SIP Phones 1.4.2 or better
#
# Copyright 2005-2015 Mitel Networks
#
# Supported Mitel Phones
# All phones
#
# Usage
# script.php?menu_user=XXX&menu_source=YYY
# XXX is the extension of the phone on the platform
# YYY is the name of the menu file to use.
#
#############################################################################
#############################################################################
# PHP customization for includes and warnings
#############################################################################
$os = strtolower(PHP_OS);
if(strpos($os, "win") === false) ini_set('include_path',ini_get('include_path').':include:../include');
else ini_set('include_path',ini_get('include_path').';include;..\include');
error_reporting(E_ERROR | E_PARSE);
#############################################################################
# Includes
#############################################################################
require_once('AastraCommon.php');
require_once('AastraIPPhoneTextMenu.class.php');
require_once('AastraIPPhoneTextScreen.class.php');
require_once('AastraIPPhoneExecute.class.php');
#############################################################################
# Private functions
#############################################################################
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();
$is_toptitle_supported=Aastra_is_top_title_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);
}
###############################################################################
# Beginning of the active code
###############################################################################
# Collect parameters
$menu_source=Aastra_getvar_safe('menu_source','all');
$menu_user=Aastra_getvar_safe('menu_user');
$menu_page=Aastra_getvar_safe('menu_page','1');
$menu_page2=Aastra_getvar_safe('menu_page2','1');
$menu_action=Aastra_getvar_safe('menu_action','list');
$menu_set=Aastra_getvar_safe('menu_set','1');
$menu_pos=Aastra_getvar_safe('menu_pos');
$menu_mode=Aastra_getvar_safe('menu_mode','dynamic');
$selection=Aastra_getvar_safe('selection');
# Get MAC address and type of phone
$header=Aastra_decode_HTTP_header();
if($menu_user=='') $menu_user=$header['mac'];
# Get Language
$language=Aastra_get_language();
# Trace
Aastra_trace_call('mymenu','menu_source='.$menu_source.', menu_user='.$menu_user.', menu_action='.$menu_action.', selection='.$selection.', menu_pos='.$menu_pos.', menu_page='.$menu_page);
# Test menu_user Agent
Aastra_test_phone_version('1.4.2.',0);
# Get global compatibility
$nb_softkeys=Aastra_number_physical_softkeys_supported();
$is_toptitle_supported=Aastra_is_top_title_supported();
$is_style_textmenu=Aastra_is_style_textmenu_supported();
$is_touch_launch=Aastra_is_touch_launch_supported();
$is_font_mono=Aastra_is_font_mono_supported();
# To handle non softkey phones
if($nb_softkeys) $MaxLines=AASTRA_MAXLINES;
else $MaxLines=AASTRA_MAXLINES-2;
# Update URI
$XML_SERVER.='?menu_source='.$menu_source.'&menu_user='.$menu_user.'&menu_mode='.$menu_mode;
# Process menu_action
switch($menu_action)
{
# List menus
case 'list':
case 'listr':
# Display MENU
if ((empty($menu_source)) || (!file_exists($menu_source.'.menu')))
{
$object = new AastraIPPhoneTextScreen();
$object->setDestroyOnExit();
if($is_toptitle_supported) $object->setTopTitle(Aastra_get_label('Configuration error',$language),'red');
else $object->setTitle(Aastra_get_label('Configuration error',$language));
$object->setText(Aastra_get_label('Please check your configuration or contact your administrator.',$language));
if($nb_softkeys)
{
if($nb_softkeys==4) $object->addSoftkey('4', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
else if($nb_softkeys==6) $object->addSoftkey('6', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
else $object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
}
else
{
# Load menu config file
$all=Aastra_readINIfile($menu_source.'.menu','#','=');
foreach($all as $key=>$value)
{
if($value[$header['model']]=='no') unset($all[$key]);
else
{
$all[$key]['title']=Aastra_get_label($all[$key]['title'],$language);
}
}
# Load menu_user config file
$config=get_user_config($menu_user,$menu_source,$menu_mode);
# At least one menu?
if(count($config['menu'])>0)
{
# Retrieve last menu_page
$nb_menu_pages=count($config['menu']);
$last=intval($nb_menu_pages/$MaxLines);
if(($nb_menu_pages-$last*$MaxLines) != 0) $last++;
if($menu_page>$last) $menu_page=$last;
# Display menu
$object=new AastraIPPhoneTextMenu();
$object->setDestroyOnExit();
if(($menu_action=='list') and ($menu_pos!='')) $object->setDefaultIndex($menu_pos);
$title=$all['RESERVED']['title'];
if($last!=1) $title.=' ('.$menu_page.'/'.$last.')';
if($is_toptitle_supported) $object->setTopTitle($title);
else $object->setTitle($title);
if($is_style_textmenu) $object->setStyle('none');
if($is_font_mono) $object->setNoFontMono();
$index=0;
$menu_pos=1;
if((!$nb_softkeys) and ($menu_page!=1)) $object->addEntry(Aastra_get_label('Previous Page',$language),$XML_SERVER.'&menu_page='.($menu_page-1));
$search=array('/\$\$AA_XML_SERVER_AA\$\$/','/\$\$AA_XMLDIRECTORY_AA\$\$/');
$replace=array($AA_XML_SERVER,$AA_XMLDIRECTORY);
foreach($config['menu'] as $key=>$value)
{
$uri=preg_replace($search, $replace, $all[$value]['uri']);
if(($index >= ($menu_page-1)*$MaxLines) and ($index < $menu_page*$MaxLines))
{
if($all[$value]['param']!='')
{
$split=explode(',',$all[$value]['param']);
foreach($split as $key2) $uri.=((strpos($uri,'?')===false) ? '?':'&').$key2.'='.$_GET[$key2];
}
$object->addEntry($all[$value]['title'],$uri,$key.'&menu_pos='.$menu_pos);
$menu_pos++;
}
$index++;
}
# Check if some menus are missing
$header['model']=strtolower($header['model']);
unset($all['RESERVED']);
foreach($all as $key=>$value)
{
if($value[$header['model']]=='no') unset($all[$key]);
}
foreach($config['menu'] as $key=>$value) unset($all[$value]);
# Softkeys
if($nb_softkeys)
{
if($menu_mode=='dynamic')
{
if($nb_softkeys==4)
{
if($menu_set==1)
{
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
if($menu_page!=1) $object->addSoftkey('2', Aastra_get_label('Previous',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page-1));
if($menu_page!=$last) $object->addSoftkey('3', Aastra_get_label('Next',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page+1).'&menu_pos=');
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'&menu_set=2&menu_page='.$menu_page);
}
else if($menu_set==2)
{
if(count($all)>0) $object->addSoftkey('1', Aastra_get_label('Add',$language), $XML_SERVER.'&menu_action=add&menu_page='.$menu_page);
$object->addSoftkey('2', Aastra_get_label('Remove',$language), $XML_SERVER.'&menu_action=remove&menu_page='.$menu_page);
$object->addSoftkey('3', Aastra_get_label('Sort A-Z',$language), $XML_SERVER.'&menu_action=sortA&menu_set='.$menu_set);
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'&menu_set=3&menu_page='.$menu_page);
}
else if($menu_set==3)
{
$object->addSoftkey('1', Aastra_get_label('Move Up',$language), $XML_SERVER.'&menu_action=up&menu_page='.$menu_page.'&menu_set='.$menu_set);
$object->addSoftkey('2', Aastra_get_label('Move Down',$language), $XML_SERVER.'&menu_action=down&menu_page='.$menu_page.'&menu_set='.$menu_set);
$object->addSoftkey('3', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'&menu_set=1&menu_page='.$menu_page);
}
}
else if($nb_softkeys==6)
{
if($menu_set==1)
{
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
if($menu_page!=1) $object->addSoftkey('2', Aastra_get_label('Previous',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page-1));
if(count($all)>0) $object->addSoftkey('3', Aastra_get_label('Add',$language), $XML_SERVER.'&menu_action=add&menu_page='.$menu_page);
$object->addSoftkey('4', Aastra_get_label('Remove',$language), $XML_SERVER.'&menu_action=remove&menu_page='.$menu_page);
if($menu_page!=$last) $object->addSoftkey('5', Aastra_get_label('Next',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page+1).'&menu_pos=');
$object->addSoftkey('6', Aastra_get_label('More',$language), $XML_SERVER.'&menu_set=2&menu_page='.$menu_page);
}
else
{
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
$object->addSoftkey('2', Aastra_get_label('Move Up',$language), $XML_SERVER.'&menu_action=up&menu_page='.$menu_page.'&menu_set='.$menu_set);
$object->addSoftkey('3', Aastra_get_label('Sort A-Z',$language), $XML_SERVER.'&menu_action=sortA&menu_set='.$menu_set);
$object->addSoftkey('4', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
$object->addSoftkey('5', Aastra_get_label('Move Down',$language), $XML_SERVER.'&menu_action=down&menu_page='.$menu_page.'&menu_set='.$menu_set);
$object->addSoftkey('6', Aastra_get_label('More',$language), $XML_SERVER.'&menu_set=1&menu_page='.$menu_page);
}
}
else if($nb_softkeys==10)
{
if(count($all)>0) $object->addSoftkey('1', Aastra_get_label('Add',$language), $XML_SERVER.'&menu_action=add&menu_page='.$menu_page);
$object->addSoftkey('2', Aastra_get_label('Remove',$language), $XML_SERVER.'&menu_action=remove&menu_page='.$menu_page);
if($menu_page!=1) $object->addSoftkey('3', Aastra_get_label('Previous',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page-1));
if($menu_page!=$last) $object->addSoftkey('8', Aastra_get_label('Next',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page+1).'&menu_pos=');
$object->addSoftkey('4', Aastra_get_label('Move Up',$language), $XML_SERVER.'&menu_action=up&menu_page='.$menu_page.'&menu_set='.$menu_set);
$object->addSoftkey('6', Aastra_get_label('Sort A-Z',$language), $XML_SERVER.'&menu_action=sortA&menu_set='.$menu_set);
$object->addSoftkey('9', Aastra_get_label('Move Down',$language), $XML_SERVER.'&menu_action=down&menu_page='.$menu_page.'&menu_set='.$menu_set);
$object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
}
else
{
if($nb_softkeys==4)
{
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
if($menu_page!=1) $object->addSoftkey('2', Aastra_get_label('Previous',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page-1));
if($menu_page!=$last) $object->addSoftkey('3', Aastra_get_label('Next',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page+1).'&menu_pos=');
$object->addSoftkey('4', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==6)
{
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
if($menu_page!=1) $object->addSoftkey('2', Aastra_get_label('Previous',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page-1));
if($menu_page!=$last) $object->addSoftkey('5', Aastra_get_label('Next',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page+1).'&menu_pos=');
$object->addSoftkey('6', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==10)
{
if($menu_page!=1) $object->addSoftkey('3', Aastra_get_label('Previous',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page-1));
if($menu_page!=$last) $object->addSoftkey('8', Aastra_get_label('Next',$language), $XML_SERVER.'&menu_action=listr&menu_page='.($menu_page+1).'&menu_pos=');
$object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
}
}
else
{
if($menu_page!=$last) $object->addEntry(Aastra_get_label('Next Page',$language),$XML_SERVER.'&menu_page='.($menu_page+1));
}
}
else
{
# Display error
$object = new AastraIPPhoneTextScreen();
$object->setDestroyOnExit();
if($is_toptitle_supported) $object->setTopTitle($all['RESERVED']['title'],'red');
else $object->setTitle($all['RESERVED']['title']);
$object->setText(Aastra_get_label('No application configured.',$language));
if($nb_softkeys)
{
if($nb_softkeys==4)
{
if(count($all)>0) $object->addSoftkey('1', Aastra_get_label('Add',$language), $XML_SERVER.'&menu_action=add');
$object->addSoftkey('4', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==6)
{
if(count($all)>0) $object->addSoftkey('3', Aastra_get_label('Add',$language), $XML_SERVER.'&menu_action=add');
$object->addSoftkey('6', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==10)
{
if(count($all)>0) $object->addSoftkey('1', Aastra_get_label('Add',$language), $XML_SERVER.'&menu_action=add');
$object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
}
}
}
break;
# Sort A-Z
case 'sortA':
# Load menu_user config file
$config=Aastra_get_user_context($menu_user,'mymenu'.'_'.$menu_source);
# Load menu config file
$all=Aastra_readINIfile($menu_source.'.menu','#','=');
foreach($all as $key=>$value)
{
$all[$key]['title']=Aastra_get_label($all[$key]['title'],$language);
}
# Prepare the sort
$i=0;
foreach($config['menu'] as $key=>$value)
{
$sort[$i]['index']=$value;
$sort[$i]['sort']=$all[$value]['title'];
$i++;
}
unset($config);
# Sort A-Z on the localized label
Aastra_natsort2d($sort,'sort');
foreach($sort as $key=>$value) $config['menu'][]=$sort[$key]['index'];
# Update user file
Aastra_save_user_context($menu_user,'mymenu'.'_'.$menu_source,$config);
# Display list
$object=new AastraIPPhoneExecute();
$object->addEntry($XML_SERVER.'&menu_action=list&menu_page=1&menu_set='.$menu_set.'&menu_pos=1');
break;
# Move up
case 'up':
# Not the first entry?
if($selection!='0')
{
# Load menu_user config file
$config=Aastra_get_user_context($menu_user,'mymenu'.'_'.$menu_source);
# Up
$temp=$config['menu'][$selection];
$config['menu'][$selection]=$config['menu'][($selection-1)];
$config['menu'][($selection-1)]=$temp;
Aastra_save_user_context($menu_user,'mymenu'.'_'.$menu_source,$config);
$menu_pos--;
# Change page if needed
if($selection%$MaxLines==0)
{
if($menu_page!='1')
{
$menu_page--;
$menu_pos=$MaxLines;
}
}
# Display list
$object=new AastraIPPhoneExecute();
$object->addEntry($XML_SERVER.'&menu_action=list&menu_page='.$menu_page.'&menu_set='.$menu_set.'&menu_pos='.$menu_pos);
}
else
{
# Do Nothing
$object=new AastraIPPhoneExecute();
$object->setBeep();
$object->addEntry('');
}
break;
# Move down
case 'down':
# Load menu_user config file
$config=Aastra_get_user_context($menu_user,'mymenu'.'_'.$menu_source);
# Not the last entry?
if($selection!=count($config['menu']))
{
# Down
$temp=$config['menu'][($selection+1)];
$config['menu'][($selection+1)]=$config['menu'][$selection];
$config['menu'][$selection]=$temp;
Aastra_save_user_context($menu_user,'mymenu'.'_'.$menu_source,$config);
$menu_pos++;
# Change page if needed
if($selection%$MaxLines==($MaxLines-1))
{
$menu_page++;
$menu_pos=1;
}
# Display list
$object=new AastraIPPhoneExecute();
$object->addEntry($XML_SERVER.'&menu_action=list&menu_page='.$menu_page.'&menu_set='.$menu_set.'&menu_pos='.$menu_pos);
}
else
{
# Do Nothing
$object=new AastraIPPhoneExecute();
$object->setBeep();
$object->addEntry('');
}
break;
# Remove a menu
case 'remove':
# Load menu_user config file
$config=Aastra_get_user_context($menu_user,'mymenu'.'_'.$menu_source);
# Remove Menu
unset($config['menu'][$selection]);
# Display menu
Aastra_save_user_context($menu_user,'mymenu'.'_'.$menu_source,$config);
# Display list
$object = new AastraIPPhoneExecute();
$object->addEntry($XML_SERVER.'&menu_action=list&menu_page='.$menu_page);
break;
# Add a menu in the list
case 'update':
# Load menu_user config file
$config=Aastra_get_user_context($menu_user,'mymenu'.'_'.$menu_source);
# Remove Menu
$config['menu'][]=$selection;
# Update configuration
Aastra_save_user_context($menu_user,'mymenu'.'_'.$menu_source,$config);
# Display list
$object=new AastraIPPhoneExecute();
$object->addEntry($XML_SERVER.'&menu_action=add&menu_page2='.$menu_page2);
break;
# Info on a menu
case 'details':
# Load menu config file
$all=Aastra_readINIfile($menu_source.'.menu','#','=');
foreach($all as $key=>$value)
{
$all[$key]['info']=Aastra_get_label($all[$key]['info'],$language);
}
# Display Help
$object = new AastraIPPhoneTextScreen();
$object->setDestroyOnExit();
if($is_toptitle_supported) $object->setTopTitle($selection,'red');
else $object->setTitle($selection);
if($all[$selection]['info']!='') $object->setText($all[$selection]['info']);
else $object->setText(Aastra_get_label('No information available',$language));
# Softkeys
if($nb_softkeys)
{
if($nb_softkeys==4)
{
$object->addSoftkey('3', Aastra_get_label('Back',$language), $XML_SERVER.'&menu_action=add&menu_page2='.$menu_page2);
$object->addSoftkey('4', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==6)
{
$object->addSoftkey('5', Aastra_get_label('Back',$language), $XML_SERVER.'&menu_action=add&menu_page2='.$menu_page2);
$object->addSoftkey('6', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==10)
{
$object->addSoftkey('9', Aastra_get_label('Back',$language), $XML_SERVER.'&menu_action=add&menu_page2='.$menu_page2);
$object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
$object->setCancelAction($XML_SERVER.'&menu_action=add&menu_page2='.$menu_page2);
}
}
break;
# Add a menu screen
case 'add':
# Load menu config file
$header['model']=strtolower($header['model']);
$all=Aastra_readINIfile($menu_source.'.menu','#','=');
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');
# Load menu_user config file
$config=Aastra_get_user_context($menu_user,'mymenu'.'_'.$menu_source);
# Filter existing menus
unset($all['RESERVED']);
foreach($config['menu'] as $key=>$value) unset($all[$value]);
# At least one to add
if(count($all)>0)
{
# Retrieve last menu_page
$nb_menu_pages=count($all);
$last=intval($nb_menu_pages/$MaxLines);
if(($nb_menu_pages-$last*$MaxLines) != 0) $last++;
# Display menu
$object=new AastraIPPhoneTextMenu();
$object->setDestroyOnExit();
$title=Aastra_get_label('Add Application',$language);
if($last!=1) $title.=' ('.$menu_page.'/'.$last.')';
if($is_toptitle_supported) $object->setTopTitle($title);
else $object->setTitle($title);
if($is_style_textmenu) $object->setStyle('none');
$index=0;
foreach($all as $key=>$value)
{
if(($index >= ($menu_page2-1)*$MaxLines) and ($index < $menu_page2*$MaxLines)) $object->addEntry($value['title'],$XML_SERVER.'&menu_action=update&selection='.$key.'&menu_page2='.$menu_page2,$key);
$index++;
}
# Softkeys
if($nb_softkeys)
{
if($nb_softkeys==4)
{
if($menu_set==1)
{
$object->addSoftkey('1', Aastra_get_label('Add',$language), 'SoftKey:Select');
if($menu_page2!=1) $object->addSoftkey('2', Aastra_get_label('Previous',$language), $XML_SERVER.'&menu_action=add&menu_page2='.($menu_page2-1));
if($menu_page2!=$last) $object->addSoftkey('3', Aastra_get_label('Next',$language), $XML_SERVER.'&menu_action=add&menu_page2='.($menu_page2+1));
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'menu_action=add&menu_set=2');
}
else
{
$object->addSoftkey('1', Aastra_get_label('Details',$language), $XML_SERVER.'&menu_action=details&menu_page2='.$menu_page2);
$object->addSoftkey('2', Aastra_get_label('Back',$language), $XML_SERVER.'&menu_page='.$menu_page);
$object->addSoftkey('3', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'menu_action=add&menu_set=1');
}
}
else if($nb_softkeys==6)
{
$object->addSoftkey('1', Aastra_get_label('Add',$language), 'SoftKey:Select');
if($menu_page2!=1) $object->addSoftkey('2', Aastra_get_label('Previous',$language), $XML_SERVER.'&menu_action=add&menu_page2='.($menu_page2-1));
if($menu_page2!=$last) $object->addSoftkey('5', Aastra_get_label('Next',$language), $XML_SERVER.'&menu_action=add&menu_page2='.($menu_page2+1));
$object->addSoftkey('3', Aastra_get_label('Details',$language), $XML_SERVER.'&menu_action=details&menu_page2='.$menu_page2);
$object->addSoftkey('4', Aastra_get_label('Back',$language), $XML_SERVER.'&menu_page='.$menu_page);
$object->addSoftkey('6', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==10)
{
$object->addSoftkey('1', Aastra_get_label('Add',$language), 'SoftKey:Select');
if($menu_page2!=1) $object->addSoftkey('3', Aastra_get_label('Previous Page',$language), $XML_SERVER.'&menu_action=add&menu_page2='.($menu_page2-1));
if($menu_page2!=$last) $object->addSoftkey('8', Aastra_get_label('Next Page',$language), $XML_SERVER.'&menu_action=add&menu_page2='.($menu_page2+1));
$object->addSoftkey('6', Aastra_get_label('Details',$language), $XML_SERVER.'&menu_action=details&menu_page2='.$menu_page2);
$object->addSoftkey('9', Aastra_get_label('Back',$language), $XML_SERVER.'&menu_page='.$menu_page);
$object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
$object->setCancelAction('9', Aastra_get_label('Back',$language), $XML_SERVER.'&menu_page='.$menu_page);
}
}
}
else
{
# Display list
$object=new AastraIPPhoneExecute();
$object->addEntry($XML_SERVER.'&menu_action=list');
}
break;
}
# Display object
$object->output();
exit;
?>