Course13:IT Connect - 08.0 Using Templates

From innovaphone-wiki

Jump to: navigation, search

How Templates simplify user configuration


The Templates PbxManager Plugin

When we were looking at user administration with UsersAdmin we talked about Templates:
There are a lot of settings for users and we will see a number of them in this course. For now, it is good enough to understand that such settings can be put in a so-called template.

You can then assign a template to a user and the settings in the template will be applied to the user. Also, when you change the template later on, the change will be effective for all users who have the template assigned.

The Install has created two commonly useful templates, Config User and Config Admin (for users with admin rights)
Now its the time to look at these templates in more detail. The tool to do this is the screenshot.png Templates PbxManager plugin. When you open it, it will screenshot.png list the aforementioned templates Config User and Config Admin.

Let's see what is in a template.


The Apps part of a template define the Apps that are technically available to users who share this template. Technically here means that the App will be listed in the respective users list of all Apps. To really be able to use it, licenses may be required and assigned to the user (depending on the App). This is not done here.

As mentioned before, Install has created the two templates Config User and Config Admin. The screenshot.png App assignments in Config User lists all the end-user Apps while the screenshot.png App assignments in Config Admin list the administrative Apps.

Where Apps come from

Most of the Apps (such as for example Users, Devices and Files) exist because they are actually installed on your App Platform. You will see them video2.png listed in the Apps manager if they are installed.

PBX Apps

Others however are provided by the PBX (such as for example the PbxManager) and therefore "just exist" because the PBX exists.

Again others exist because specific objects exist in the PBX. We have used Time Switches before and also the App that allows end users to manage the state of the time switch. In our case, it was called Business hours. In fact, the PBX will create a separate App for each time switch you create and the name of the App is the name of the time switch.

  • Create a new time switch called Christmas
  • Edit the Config Admin template to allow access to the new Christmas App
You will see that it video2.png appears in your All Apps list.


One interesting but non-obvious type of Apps is those that end with ...Api. These are not Apps with a user interface. Instead, they are APIs exposed by an App that allow other Apps to use their services. For example, when the Waiting Queue PbxManager plugin tries to find the announcement files you have stored in the Files App, it uses the FilesApi which lists all stored and shared files. For an App that uses services (that is, an API) of another App to work, the user that runs the App must have access to the respective Api.

You can video2.png try that as follows:
  • change the Config Admin template and un-tick the FilesApi check-mark. This template is the one used by your own user and therefore, you are blocking your own access to the FilesApi
  • When you now try to select an announcement in the Waiting Queue PbxManager plugin, no announcement files will be listed
  • Don't forget to fix the template again!


You might have asked yourself when looking at the Apps settings in the Config Admin and Config User templates: why are the end-user Apps not ticked in the Config Admin template? Does that mean that administrators must not use end-user Apps?

The answer is: not at all. The trick here is that templates can inherit from other templates. In our case, Config Admin inherits from Config User.

This is screenshot.png defined in the Inheritance section of the template settings. A template can inherit settings from up to 4 other templates. However, inheritance is not recursive.

In other words, if template A inherits from template B and template B inherits from template C, A does not inherit from C (but still, B inherits from C). So if a user has template A assigned, the settings from both A and B are effective, but not C. If a user has template B assigned, the settings from both B and C are effective. So if you want a user to receive settings from A, B and C, you must list B and C in the Inheritance section of A and assign A as the user's template.

video2.png Create a template that is like the one for normal users (Config User) except that it allows access to the Business hours App:
  • Create a new template called Business hours operator
  • in the Apps section, tick the Business hours App
  • make sure it inherits from Config User
  • assign the new template to Mario Rossi

Inheritance Logic

The inheritance logic is quite simple: when a template inherits from another and a value is empty in the inheriting template, the value from the inherited value takes effect.

However, for check-marks, it is screenshot.png a bit different. With a check-mark, there is no way to leave the field "empty". This is why the check-marks for true/false values in a template have 3 options:
  • + set the option
  • - clear the option
  • <empty> leave the option as inherited (or clear it if nothing was inherited)

Function keys

This section allows you to setup the two most basic types of function keys on your phones: Quickdial and Partner.

Layouting phone function keys

Function keys on the phone are available in the phone's so called screenshot.png home screen. This screen has 2 pages which can be switched using the little video2.png key on the upper right.

Function keys can be defined in a template and their definition is independent of the actual phone model the user has. Nevertheless, different phone models may have different number and layout of function keys. For example, IP2x2 models may have an fish-help.png extension module installed which offers two additional pages with 16 function keys each. Some older phones however had less function keys. For example, the fish-help.png IP240 had 15 function keys (and also an optional extension module) and the fish-help.png IP110 had only 4.

Therefore, function keys defined in a template are "filled in" to the available physical function keys in a top-to-bottom / left-to-right / page-to-page / phone-to-extension-module fashion. If a specific phone model can not handle the number of defined keys, the remaining ones are simply ignored. The Templates PbxManager plugin has options to video2.png display function keys with different layouts so that it is easier for you to determine on which position it is displayed on a real phone.


The Quickdial function key is one of the simplest keys and allows to dial a phone number by pressing a single button. It has only two properties:
  • Label
    A fixed label that is shown on the phone
  • Destination
    The target that should be called. This can be anything that is callable:
    • a number (e.g. 0090012345678), no decoration (as in 0 0 (900) 12345678)
    • an ID (a.k.a. SIP) of an object in the PBX (e.g. mro which is Mario Rossi's ID)
    • a SIP URI which is the ID of an object in a foreign PBX (e.g.
The Quickdial key is usually used for external numbers. For internal numbers, the Partner key is often more popular as it provides a bit more functionality.

  • start the Templates PbxManager plugin
  • select the Config User template
  • expand the Function keys area
  • switch to the IP11x tab
  • add a function key to the lower right edge of the first page
  • select Quickdial
  • use Mario as Label
  • set mro as Destination
  • click on Save and OK
You can now video2.png dial quickly from Lisa to Mario using the new function key.


The Partner key is something like an enhanced Quickdial key. It has the same properties (Label and Destination) but it offers slightly more functionality.

To see what the difference is, create a Partner function key that calls yourself (invalid member reference '.username' in 'username'). This is much like before, except that you use the Partner type instead of the Quickdial type and use another label (let's say >invalid member reference '.username' in 'username'). If you now use the new key to call from Lisa to invalid member reference '.firstname' in 'firstname', it will of course do the call. The interesting part video2.png can be seen on Jean's phone: as soon as you have taken Lisa's call, Jean's phone will show the On the phone note for invalid member reference '.firstname' in 'firstname' (>invalid member reference '.username' in 'username' On the phone). This is because a Partner function key can subscribe to the call information of the target user.

As a rule of thumb, you should use the Partner key for real target users in your PBX where it is useful to see their status. For functional numbers (a waiting queue or a voicemail for example) and for external users, you should use a Quickdial key rather.


To get the Pickup to work, we first need to look a the concept of Privacy. This is done in the next chapter.

Privacy filter

The amount of information that is available to other users is controlled by the users themselves. There is a Privacy tab in the user's profile settings that allows you to define who has access to which part of your call and presence information.

By default, the screenshot.png privacy settings, allow each user in your PBX to see
  • that you exist (Visible)
  • whether you run the myApps client or not (Online)
  • your presence state (Presence)
  • if you are engaged in a phone call (On the phone)
  • the presence note you may have set (Presence note)
but it disallows to see
  • the calls you have (Calls)
  • the calls you have including the remote party (Calls with Number)
When you video2.png look at your own privacy settings in your profile, you see the respective settings under the List of templates privacy filters heading. This is because they are done in one of your templates (its actually part of the Config User template). You can not change these settings directly (as you can not change a template in your own profile editor). But you can create your own settings that override the default ones.

Privacy Scopes

You can specify multiple privacy filter with different scopes. A scope is either
  • a user (like invalid member reference '.username' in 'username'
  • a PBX, specified by its domain name (like
  • a group, specified by its name (like hqswb-0)
  • everybody, specified like a PBX but with the domain name left empty (@)

When you add your own privacy filters, it will take precedence over one that was defined in a template.

(Further Hints) Note that privacy rights are asymmetrical. The fact that user A has access to information about user B does not imply that user B has access to the same information about user A. Instead, both user A and B need to grant access to their own information (using their own profile, or the administrator does it using templates).

  • add a new Filter for a user
  • set Mario's ID (mro) as user
  • leave the field empty (this defaults to your own PBX, you could as well type
  • tick the Visible, Online, Presence, On the phone, Presence note and Calls check-mark
  • save the new filter
when Lisa calls you now, video2.png look at the phone screens of Jean and Mario. When your phone is ringing, Jean's phone does not change while Mario's phone shows the alerting call. Only when you take the call, Jean's phone shows that you are On the phone.

If you also tick the Calls with Number check-mark in your privacy filter for Mario, he would even screenshot.png see who calls you.

If you video2.png change your presence state or set a presence note for yourself this is shown for both Mario and Jean because the default privacy settings allow access to Presence and Presence note for all users of the PBX (as discussed above).

(Further Hints) When you play around with privacy settings and a phone does not behave as expected, simply do a power cycle on the phone. This is the fastest method to refresh the subscription a phone establishes to the PBX to receive the call and presence information.

Call Pickup

When a user receives call information (that is, Calls (or Calls with Number) information) in a subscription made by a function key, the key will show the calls. This is also screenshot.png true for alerting calls.

In this alerting state, when the function key is used, it will not place a call to the target user (this would anyway create an unpleasant situation on the target user's phone where two calls alert simultaneously). Instead, it will video2.png show the call details along with the option to take the call. In this state, the user of the function key can decide to either take the call (this is known as Call pickup) or to reject it. Note that rejecting the call does not cancel the incoming call for the target user. Instead, it continues to ring on the target phone.

The Templates PbxManager Plugin (contd).

Let us return to the Templates PbxManager Plugin and see what else it does.

The Pickup function key

The Pickup function key also allows users to do call pickup. However, instead of subscribing to the call information for a specific target user it subscribes to the call information for all users in a group. Therefore you would - in addition to the Label - configure the name of a group in the Group field.

Pickup and privacy

For a Pickup key to receive Calls with Number information required to perform a call pickup, the user must have appropriate access rights. In contrast to the Partner key, privacy control is not done using the privacy settings in a user's profile (nor using the privacy settings in the templates). Instead, users have access to other user's call information if they are active member of a group in which the monitored user is also a member (not necessarily an active member).

So like with the privacy settings, access to calls information is asymmetric. If user A is an active member of group G and user B is a non-active user of G, then A receives information about B but B does not receive information about A. If both are active members of G, they mutually have access to their call information.

The active property of a group membership can not be set by the user. Instead, it must be set by the administrator using the Groups PbxManager plugin. As a result, users can not accidentally change the function of a Pickup function key.

Dynamic membership (dynamic-in or dynamic-out) is irrelevant to group pickup. That is, a user's call information can be seen by other active group members even if the user currently has the dynamic-out group membership state.

video2.png Create a group called pickup so that all users can pick calls from all users:
  • open the Groups PbxManager plugin
  • add a new Group with name pickup
  • add all users to this group
  • make sure all users are static (S) and active (A)
  • save the group with OK
Then video2.png create a Pickup function key for this group in the Config User template:
  • open the Templates PbxManager plugin
  • open the Config User template
  • expand the Function keys area
  • switch to the IP11x tab
  • create a new function key above the >invalid member reference '.username' in 'username' key
  • select Pickup as key type
  • set a Label (e.g. myGroup)
  • set Group to pickup
  • set 2 as Signal after ... (s)
  • save the new key with Save
  • save the template with OK
When you now call from Lisa to Mario (13), you will video2.png see the myGroup key show this call on Jean's phone. If you press the key, the call will be available for call pickup just like with the Partner key before.

Audible alert

Calls that can be picked are shown in the Pickup key but they are not alerting on the monitoring phone of course. However, as the Signal after ... (s) property is set (as a time in seconds), an audible signal is heard on the monitoring phone after the specified time.

If you did not notice it, call again to Mario and let the call ring. After 2 seconds, you will hear the attention tone.

Phone settings

Call Waiting

Use of Call Waiting often is part of the companies phone policies. If it is ticked in the template, calls received during another call will be shown on the phone display (which is the default which is why it is already ticked in a new template). Also, a tone is inserted into the active call so to attract the user's attention.

If it is not ticked, such calls will be rejected with a user busy cause.

Visual Ringing Indication

When the phone features an LED (and your IP232, IP222, IP112 and IP111 do so), it will light up on an incoming call if the Visual Ringing Indication check-mark is ticked.

Hide own number

If this check-mark is ticked the calling party number is suppressed in outgoing calls.


The Settings section is basically good to adjust the following two user properties.

The remaining ones (Push and Messages) should not be modified in most scenarios.

Call filter

A call filter imposes limits on which numbers a user can call. For example, if you want to restrict users from doing outbound calls from the PBX to the public network, you would want to disallow all numbers starting with 0 (assuming your trunk line access number is 0).

There following filters are defined by default:
  • normal
    no restrictions
  • national
    000 not allowed (assuming 0 is your trunk access number and 00 is your international access code)
  • intern
    011 allowed, anything else starting with 0 not allowed. Disallows all external calls (through the trunk) except for emergency numbers (such starting with 11, like 110 or 112)
  • unknown
    0 not allowed. Disallows all external calls

Call Forward filter

This setting is much like the Call filter settings, except that it limits call forwards. So users who have intern set as Call Forward filter, will not be allowed to set a call forward to any external number except for emergency numbers.

Note that this filter is evaluated when the call forward is executed, not when it is set.


In your training, you always run the PBX in the so-called test mode. In this mode, all licenses whatsoever are considered available. The only drawback is that you must re-boot the PBX every 8 hours.

In real-life however, this is impractical and (even more important) violates the license agreement. So you will need to
  • purchase licenses
  • bind them to your PBX device
  • upload them to your PBX device
  • and assign them to individual users
The last step is done using the Licenses area within the templates. All licenses which video2.png have a + sign next to it in a template are assigned to the users for whom the template gets effective (either because it is assigned to them in UsersAdmin or because it is inherited by the assigned template). Those with a - sign get the license removed (if it was assigned by an inherited template) and those with neither + nor - are left as inherited.

The Config User template assigns the mostly relevant licenses to its users. You can change it, but as said before, here in the training it does not matter.

(Further Hints) The other 3 steps are not covered in this book. Please refer to the link_intern.png innovaphone Licensing guidelines V13r1 for more details about licensing (step 1, available in various languages). For step 2 and 3, the link_intern.png site is used. For more details, see the tutorials on link_intern.png myTutorial/

Creating personal function keys on a phone

We have seen how function keys are defined in a template and that they are available on all phones of all users who share this template.

In addition to that it is possible to define individual function keys for users. You do that on the user's phone by pressing (for about 2 seconds) the buttons on the left and right sides of the home screen (or the little + signs on the IP232's touch screen). This brings you in to the function key editor on the phone.

Function keys which have been created this way are stored as part of the user and are only available for the user.

The phone's function key editor allows you to define even more types of function keys. A description of all the types can be found in fish-help.png function keys.


An interesting possibility here is to customize template function keys for a user. Assume you have defined a Pickup key in a template then you can edit this function key on the user's phone and modify for example the group. This modification is only effective for this particular user and does not disturb the original definition in the template.

Technically speaking, the settings done in the user which differ from those in the template override settings in the template, but only for this user.
Personal tools