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.
<?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>
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>
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
|background_images||Stores the background image of the phone|
|call_icons||Stores the icons for the different call states, such as connected, ringing, busy, etc.|
|call_overlay||Status indication rings for contact images|
|contact_state_icons||Icons for different contact states, such as available, away, busy, etc. These icons are used when there is no contact picture provided.|
|contact_state_overlays||Icon rings for different contact states, such as available, away, busy, etc. These icons are used when there is a contact picture provided.|
|contact_type_icons||Icons for the contacts in the phone address book. E.g. friends, VIP, family, work, etc.|
|extraicontype_icons||Icons for the phone menus, smartLabels (WiFi, headset); check boxes, arrows, conference active, and many more|
|fkey_icons||Icons that are used on for fkey labelling|
|icontype_icons||icons of the hard function keys (transfer, settings, address book, hold, etc.) on the phone|
|identity_state_icons||Icons to indicate the state of an identity in idle screen, such as silent ringer, forwarding active, keyboard lock|
|input_info_images||icons for the setup wizards of smartTransfer and smartConference|
|other_images||mainly images for the analog clock and a few others|
|settings_window_icons||icons for setting brightness, contrast, and different volume settings. These are overlay icons with a bar in the middle.|
|titlebar_icons||Icons 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>
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: