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>



Das IPPhoneMenu zeigt ein Menü mit wählbaren Elementen an. Diese Elemente können entweder Untermenüs sein, die Elemente selbst enthalten, oder Elemente mit einem bestimmten Ziel, wie URLs, Key-Events oder interne Rückrufe.

Für dieses How to erstellen wir ein Beispielmenü zur Einstellung von Funktionen für eingehende Anrufe. Das Menü enthält zwei Menüpunkte: Der erste, der das servergesteuerte DND ein- und ausschaltet, der zweite, der die Rufumleitung konfiguriert.

Ein neues IP-Telefonmenü erstellen

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

Hinzufügen von Menüpunkten

  • Neue Elemente können dem XML-Menü mit dem Tag <MenuItem></MenuItem> hinzugefügt werden.
  • Um dem Menüpunkt einen Namen zu geben, fügen Sie dem Tag name=""" hinzu. Sie können ihm einen statischen Namen geben oder die Variable $(lang:SETTING) verwenden. Damit wird der Elementname automatisch in die Sprache übersetzt, die der Benutzer am Telefon ausgewählt hat. 
  • Für weitere Referenzen können Sie dem Menüpunkt eine ID zuweisen. Wir werden id="serverDnd" und id="serverCfw" für unsere beiden Menüpunkte verwenden.
<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

Sie können auch das Tag <SubText> verwenden, um weitere Informationen anzuzeigen, z.B. welche Untermenüs hinter dem Menüpunkt stehen.

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

Hinzufügen von vorinstallierten Symbolen zu den Menüs

Das Telefon ist mit einer Reihe von Symbolen ausgestattet, die in verschiedenen Anrufzuständen und Funktionen verwendet werden. Sie finden die Symbole im Anpassungspaket jeder Firmware-Version im Ordner:

bmp → colored

OrdnerBeschreibung
background_imagesSpeichert das Hintergrundbild des Telefons.
call_iconsSpeichert die Icons für die verschiedenen Anrufzustände, wie z.B. verbunden, klingelnd, besetzt, etc.
call_overlayStatusanzeige "klingelt" für Kontaktbilder
contact_state_iconsIcons für verschiedene Kontaktzustände, wie z.B. verfügbar, entfernt, besetzt, etc. Diese Icons werden verwendet, wenn kein Kontaktbild vorhanden ist.
contact_state_overlaysIcon-Ringe für verschiedene Kontaktzustände, wie z.B. verfügbar, entfernt, besetzt, etc. Diese Icons werden verwendet, wenn ein Kontaktbild zur Verfügung steht.
contact_type_iconsIcons für die Kontakte im Telefon-Adressbuch. Z.B. Freunde, VIP, Familie, Arbeit, etc.
extraicontype_iconsIcons für die Telefonmenüs, smartLabels (WiFi, Headset); Kontrollkästchen, Pfeile, Konferenz aktiv, uvm
fkey_iconsIcons, die für die Tastenbeschriftung verwendet werden.
icontype_iconsIcons der Tasten (Übertragung, Einstellungen, Adressbuch, Halten, etc.) auf dem Telefon.
identity_state_iconsIcons zur Anzeige des Status einer Identität im Ruhezustand, wie z.B. stiller Klingelton, Weiterleitung aktiv, Tastatursperre
input_info_imagesIcons für die Einrichtungsassistenten von smartTransfer und smartConference
other_imagesHauptsächlich Bilder für die Analoguhr und einige andere.
settings_window_iconsIcons zum Einstellen von Helligkeit, Kontrast und verschiedenen Lautstärkeeinstellungen. Dies sind Overlay-Icons mit einem Balken in der Mitte.
titlebar_iconsIcons für die Titelleiste, wie z.B. Headset, Kalenderkarten, Mute, Neustart, Lautsprecher, etc.


Sie können auf jedes dieser Symbole in Ihrem XML-Code verweisen. Um ein Symbol aus dem Ordner extraicontype_icons anzuzeigen, fügen Sie es einfach hinzu:

<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>

Untermenüs

Sie können dem Benutzer anzeigen, dass sich hinter dieser Menüzeit Untermenüs befinden, indem Sie das Pfeil_rechts-Symbol () neben dem Namen des Menüpunkts anzeigen.  Füge dazu das folgende Tag zu deinem XML-Code hinzu:

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