Child pages
  • How to create custom XML menus on colour screen phones - Firmware version 10.x

Contents

The IPPhoneMenu displays a Menu of selectable items. These items can either be sub-menus, containing items themselves, or items with a specific target, like URLs, key-events or internal callbacks.

For this how to, we will create an example menu for setting features for incoming calls. The menu will include two menu items: The first one to switch server managed DND on/off, a second one to configure Call Forward.

Create a new IP Phone Menu

<?xml version="1.0" encoding="UTF-8"?>
<IPPhoneMenu>
	<Menu>
	</Menu>
</IPPhoneMenu>

Adding menu items

  • New items can be added to the XML menu with the <MenuItem></MenuItem> tag.
  • To give the menu item a name, add name="" to the tag. You can give it a static name, or use the $(lang:SETTING) variable. With this, the item name will be translated automatically to the language the user has selected on the phone. 
  • For further references, you can assign an ID to the menu item. We will use id="serverDnd" and id="serverCfw" for our two menu items.
<SnomIPPhoneMenu>
	<MenuItem Name="$(lang:incoming_calls_settings)">
		<MenuItem name="$(lang:dnd_line)" id="serverDnd">
		
		</MenuItem>
		<MenuItem "$(lang:redirect_settings)" id="serverCfw">


		</MenuItem>
	</MenuItem>
</SnomIPPhoneMenu>

Subtext

You can also use the tag <SubText> to display more information, e.g. which submenus lay behind the menu item.

<SnomIPPhoneMenu>
	<MenuItem name="$(lang:auto_dial)">
		<SubText>
			$(lang:redirect_settings), $(lang:outgoing_calls_settings), $(lang:incoming_calls_settings), $(lang:xsi_anywhere)
		</SubText
	</MenuItem>
</SnomIPPhoneMenu>

Adding pre-loaded icons to the menus

The phone comes equipped with a couple of icons that are used in different call states and features. You can find the icons in the customisation package of each firmware version in the folder:

bmp → colored

FolderDescription
background_imagesStores the background image of the phone
call_iconsStores the icons for the different call states, such as connected, ringing, busy, etc.
call_overlayStatus indication rings for contact images
contact_state_iconsIcons for different contact states, such as available, away, busy, etc. These icons are used when there is no contact picture provided.
contact_state_overlaysIcon rings for different contact states, such as available, away, busy, etc. These icons are used when there is a contact picture provided.
contact_type_iconsIcons for the contacts in the phone address book. E.g. friends, VIP, family, work, etc.
extraicontype_iconsIcons for the phone menus, smartLabels (WiFi, headset); check boxes, arrows, conference active, and many more
fkey_iconsIcons that are used on for fkey labelling
icontype_iconsicons of the hard function keys (transfer, settings, address book, hold, etc.) on the phone
identity_state_iconsIcons to indicate the state of an identity in idle screen, such as silent ringer, forwarding active, keyboard lock
input_info_imagesicons for the setup wizards of smartTransfer and smartConference
other_imagesmainly images for the analog clock and a few others
settings_window_iconsicons for setting brightness, contrast, and different volume settings. These are overlay icons with a bar in the middle.
titlebar_iconsIcons for the titlebar, such as headset, calendar cards, mute, reboot, speaker, etc.


You can refer to any of these icons in your XML code. To display an icon from the folder extraicontype_icons, simply add:

<SnomIPPhoneMenu>
	<MenuItem name="$(lang:auto_dial)">
		<ExtraIconType>$(icon_type_enum:kIconTypePhoneStateDND)</ExtraIconType>
		<URL>https://ds.cloud-cfg.com/snom/0004139227B7/8fb1ba7b28291a0c0192cbefec44366759a668c0f888397ec3cb6cf69a82be5d/autodialset/0</URL>
	</MenuItem>
</SnomIPPhoneMenu>


Submenus

You can indicate to the user that there are submenus behind that menu time, by showing the arrow_right icon () next to the name of the menu item.  For this add the following tag to your XML code:

<ExtraIconType>$(icon_type_enum:kIconTypeMenuArrowRight)</ExtraIconType>